diff options
327 files changed, 10611 insertions, 27895 deletions
diff --git a/.gitignore b/.gitignore index 4dcd874cd7..96565192cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,16 @@ +# Application kubernetes/config/onap-parameters.yaml -.idea/* kubernetes/dist/* requirements.lock **/charts/*.tgz + + +# Eclipse +.classpath +.factorypath +.project +.settings/ + +# IntelliJ +.idea/* +*.iml diff --git a/docs/oom_user_guide.rst b/docs/oom_user_guide.rst index 1b9a3eaef3..5dd6b57889 100644 --- a/docs/oom_user_guide.rst +++ b/docs/oom_user_guide.rst @@ -75,8 +75,8 @@ Install Helm ~~~~~~~~~~~~ Helm is used by OOM for package and configuration management. To install Helm, enter the following:: - > wget http://storage.googleapis.com/kubernetes-helm/helm-v2.6.1-linux-amd64.tar.gz - > tar -zxvf helm-v2.6.1-linux-amd64.tar.gz + > wget http://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz + > tar -zxvf helm-v2.7.2-linux-amd64.tar.gz > sudo mv linux-amd64/helm /usr/local/bin/helm Verify the Helm version with:: @@ -147,13 +147,13 @@ In any case, setup of the Helm repository is a one time activity. Once the repo is setup, installation of ONAP can be done with a single command:: - > helm install local/onap -name development + > helm install local/onap --name development This will install ONAP from a local repository in a 'development' Helm release. As described below, to override the default configuration values provided by OOM, an environment file can be provided on the command line as follows:: - > helm install local/onap -name development -f onap-development.yaml + > helm install local/onap --name development -f onap-development.yaml To get a summary of the status of all of the pods (containers) running in your deployment:: @@ -170,7 +170,7 @@ deployment:: was created for each of the ONAP components. .. note:: - The Helm `-name` option refers to a release name and not a Kubernetes namespace. + The Helm `--name` option refers to a release name and not a Kubernetes namespace. To install a specific version of a single ONAP component (`so` in this example) diff --git a/kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/ecomp.cql index 6fddf65001..6fddf65001 100644 --- a/kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql +++ b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/ecomp.cql diff --git a/kubernetes/aaf/resources/config/aaf-cs-data/identities.dat b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/identities.dat index 98bf99a3d1..98bf99a3d1 100644 --- a/kubernetes/aaf/resources/config/aaf-cs-data/identities.dat +++ b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/identities.dat diff --git a/kubernetes/aaf/resources/config/aaf-cs-data/identities.idx b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/identities.idx Binary files differindex 78fc0a5693..78fc0a5693 100644 --- a/kubernetes/aaf/resources/config/aaf-cs-data/identities.idx +++ b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/identities.idx diff --git a/kubernetes/aaf/resources/config/aaf-cs-data/init.cql b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/init.cql index 81700f830c..81700f830c 100644 --- a/kubernetes/aaf/resources/config/aaf-cs-data/init.cql +++ b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-cs-data/init.cql diff --git a/kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml b/kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml index cb2f286a29..1ba8580840 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml +++ b/kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "common.fullname" . }} + name: {{ .Values.service.name }} namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.fullname" . }} diff --git a/kubernetes/aaf/charts/sms/charts/vault/values.yaml b/kubernetes/aaf/charts/sms/charts/vault/values.yaml index c65e6e19e4..331bc434b4 100644 --- a/kubernetes/aaf/charts/sms/charts/vault/values.yaml +++ b/kubernetes/aaf/charts/sms/charts/vault/values.yaml @@ -85,7 +85,7 @@ persistence: service: type: NodePort - name: vault + name: aaf-sms-db internalPort: 8200 nodePort: 44 diff --git a/kubernetes/aaf/charts/sms/templates/deployment.yaml b/kubernetes/aaf/charts/sms/templates/deployment.yaml index 66c649cab4..e5381a0f0c 100644 --- a/kubernetes/aaf/charts/sms/templates/deployment.yaml +++ b/kubernetes/aaf/charts/sms/templates/deployment.yaml @@ -36,9 +36,6 @@ spec: imagePullPolicy: {{ .Values.pullPolicy }} command: ["/sms/bin/sms"] workingDir: /sms/ - env: - - name: {{ .Values.config.smsdburlenv }} - value: "http://{{ include "common.namespace" . }}-smsdb:8200" ports: - containerPort: {{ .Values.service.internalPort }} {{- if eq .Values.liveness.enabled true }} diff --git a/kubernetes/aaf/charts/sms/templates/service.yaml b/kubernetes/aaf/charts/sms/templates/service.yaml index cb2f286a29..1ba8580840 100644 --- a/kubernetes/aaf/charts/sms/templates/service.yaml +++ b/kubernetes/aaf/charts/sms/templates/service.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "common.fullname" . }} + name: {{ .Values.service.name }} namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.fullname" . }} diff --git a/kubernetes/aaf/charts/sms/values.yaml b/kubernetes/aaf/charts/sms/values.yaml index 3db9b9ace8..92ef2ac7d8 100644 --- a/kubernetes/aaf/charts/sms/values.yaml +++ b/kubernetes/aaf/charts/sms/values.yaml @@ -37,7 +37,7 @@ debugEnabled: false # application configuration # Example: config: - smsdburlenv: "SMSDB_URL" + smsdbaddress: "http://aaf-sms-db:8200" cafile: "/sms/auth/selfsignedca.pem" servercert: "/sms/auth/server.cert" serverkey: "/sms/auth/server.key" @@ -68,7 +68,7 @@ readiness: service: type: NodePort - name: sms + name: aaf-sms internalPort: 10443 nodePort: 43 diff --git a/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-data/identities.dat b/kubernetes/aaf/resources/config/aaf-data/identities.dat index 95eb51d1be..95eb51d1be 100644 --- a/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-data/identities.dat +++ b/kubernetes/aaf/resources/config/aaf-data/identities.dat diff --git a/kubernetes/aai/charts/aai-babel/.helmignore b/kubernetes/aai/charts/aai-babel/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/aai/charts/aai-babel/Chart.yaml b/kubernetes/aai/charts/aai-babel/Chart.yaml new file mode 100644 index 0000000000..3b0e33f1c9 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +apiVersion: v1 +description: Babel microservice +name: aai-babel +version: 2.0.0 diff --git a/kubernetes/aai/charts/aai-babel/requirements.yaml b/kubernetes/aai/charts/aai-babel/requirements.yaml new file mode 100644 index 0000000000..9552dfd9e0 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/requirements.yaml @@ -0,0 +1,21 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +dependencies: + - name: common + version: ~2.0.0 + # local reference to common chart, as it is + # a part of this chart's package and will not + # be published independently to a repo (at this point) + repository: '@local' diff --git a/kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties b/kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties new file mode 100644 index 0000000000..1d7e5fa01a --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties @@ -0,0 +1,264 @@ +#action widget details +AAI.model-version-id.action=fd7fb09e-d930-41b9-b83f-cfde9df48640 +AAI.model-invariant-id.action=af593b4b-490e-4665-ad74-2f6351c0a7ce +#action-data widget details +AAI.model-invariant-id.action-data=9551346c-7d8b-4daf-9926-b93e96e2344a +AAI.model-version-id.action-data=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd +#allotted-resource widget details +AAI.model-invariant-id.allotted-resource=f6d6a23d-a1a9-48ff-8419-b6530da2d381 +AAI.model-version-id.allotted-resource=7ad0915f-25c0-4a70-b9bc-185a75f87564 +#availability-zone widget details +AAI.model-version-id.availability-zone=6c092fb1-21b2-456b-9e01-67fb4de1896e +AAI.model-invariant-id.availability-zone=61b88c01-d819-41c0-8e21-7fd7ba47148e +#az-and-dvs-switches widget details +AAI.model-version-id.az-and-dvs-switches=b2dea88d-78a0-49bf-95c9-5819df08e966 +AAI.model-invariant-id.az-and-dvs-switches=53dc00d4-e6d9-48ec-b6cc-3d3797e9b896 +#class-of-service widget details +AAI.model-version-id.class-of-service=d2fb27cc-15eb-4c4e-828e-71d41aaecc5b +AAI.model-invariant-id.class-of-service=18094b19-d16d-4822-8acf-e92c6aefa178 +#cloud-region widget details +AAI.model-version-id.cloud-region=2a160989-b202-47dd-874b-4a0f275998f7 +AAI.model-invariant-id.cloud-region=425b2158-e51d-4509-9945-dad4556474a3 +#complex widget details +AAI.model-invariant-id.complex=af91c2f7-35fc-43cf-a13d-443f385b2353 +AAI.model-version-id.complex=3a8ab1ee-9220-4fe8-b89c-9251d160ddc2 +#connector widget details +AAI.model-version-id.connector=22104c9f-29fd-462f-be07-96cd6b46dd33 +AAI.model-invariant-id.connector=4c01c948-7607-4d66-8a6c-99c2c2717936 +#constrained-element-set widget details +AAI.model-invariant-id.constrained-element-set=c0292b4f-ee97-40cc-8c2e-f967c48f5701 +AAI.model-version-id.constrained-element-set=01102126-9c04-4a89-945b-b131e61e95d7 +#ctag-assignment widget details +AAI.model-version-id.ctag-assignment=44e5cb1f-0938-41aa-b766-d4595109fe89 +AAI.model-invariant-id.ctag-assignment=fcb8d46b-b656-4ad6-8fa4-22cef74b443f +#ctag-pool widget details +AAI.model-invariant-id.ctag-pool=46c51d4e-d67e-4a9c-b1f5-49b1e9c6fcaa +AAI.model-version-id.ctag-pool=2056c41f-23b9-4de7-9f50-819adad37d76 +#customer widget details +AAI.model-invariant-id.customer=c1d4305f-cdbd-4bbe-9069-a2f4978fd89e +AAI.model-version-id.customer=d4df5c27-98a1-4812-a8aa-c17f055b7a3f +#cvlan-tag-entry widget details +AAI.model-version-id.cvlan-tag-entry=c3878ffb-8d85-4114-bee6-e4074a9db10b +AAI.model-invariant-id.cvlan-tag-entry=245cf4b0-7cc5-4eea-bbd9-753e939adcab +#dvs-switch widget details +AAI.model-invariant-id.dvs-switch=98fbb471-1f86-428e-bd8a-c8a25de6fa23 +AAI.model-version-id.dvs-switch=4cb44ae8-e3ab-452a-9f95-bcc8a44c55ea +#edge-prop-names widget details +AAI.model-invariant-id.edge-prop-names=7a08cad4-8759-46a5-8245-095d1ba57ac6 +AAI.model-version-id.edge-prop-names=f0442326-8201-4d0e-857c-74b4ddcbfc9f +#element-choice-set widget details +AAI.model-invariant-id.element-choice-set=9a011958-7165-47a3-b872-00951d1f09ae +AAI.model-version-id.element-choice-set=af27fbfd-598d-44da-aeae-0f9d3a5fcd6a +#entitlement widget details +AAI.model-version-id.entitlement=7e27ba2e-b7db-4e13-9fae-d142152ef98a +AAI.model-invariant-id.entitlement=ae75b5a0-d5e1-4f3a-b8fb-37626a753da3 +#flavor widget details +AAI.model-invariant-id.flavor=bace8d1c-a261-4041-9e37-823117415d0f +AAI.model-version-id.flavor=36200fb5-f251-4f5d-a520-7c5ad5c2cd4b +#generic-vnf widget details +AAI.model-version-id.generic-vnf=93a6166f-b3d5-4f06-b4ba-aed48d009ad9 +AAI.model-invariant-id.generic-vnf=acc6edd8-a8d4-4b93-afaa-0994068be14c +#group-assignment widget details +AAI.model-invariant-id.group-assignment=7cc05f25-7ba2-42b7-a237-c5662a1689e1 +AAI.model-version-id.group-assignment=fe578080-ce19-4604-8760-fc264fbb2565 +#image widget details +AAI.model-version-id.image=f6a038c2-820c-42ba-8c2b-375e24e8f932 +AAI.model-invariant-id.image=3f4c7204-739b-4bbb-87a7-8a6856439c90 +#include-node-filter widget details +AAI.model-invariant-id.include-node-filter=2a2d8ad2-af0a-4e1f-9982-0c899e7dc827 +AAI.model-version-id.include-node-filter=f05f804d-7057-4ffe-bdc5-39f2f0c9c9fd +#instance-group widget details +AAI.model-version-id.instance-group=8e6ee9dc-9017-444a-83b3-219edb018128 +AAI.model-invariant-id.instance-group=3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd +#inventory-item widget details +AAI.model-invariant-id.inventory-item=cd57d844-9017-4078-aa19-926935a3d77c +AAI.model-version-id.inventory-item=69957f4a-2155-4b95-8d72-d6dd9b88b27b +#inventory-item-data widget details +AAI.model-version-id.inventory-item-data=0e54bb87-bd6e-4a2b-ad1c-6d935b87ae51 +AAI.model-invariant-id.inventory-item-data=87a383ae-cf03-432e-a9de-04e6a622d0fd +#ipsec-configuration widget details +AAI.model-invariant-id.ipsec-configuration=aca4c310-cb45-42bd-9f88-73e40ba7b962 +AAI.model-version-id.ipsec-configuration=d949fd10-36bf-408a-ac7a-cad5004d2e0d +#key-data widget details +AAI.model-version-id.key-data=c23ea04d-1a3b-453d-bc49-a6c783a5e92b +AAI.model-invariant-id.key-data=f5faa464-c2f2-4cc3-89d2-a90452dc3a07 +#l3-interface-ipv4-address-list widget details +AAI.model-version-id.l3-interface-ipv4-address-list=41e76b6f-1e06-4fd4-82cd-81c50fc4574b +AAI.model-invariant-id.l3-interface-ipv4-address-list=aad85df2-09be-40fa-b867-16415e4e10e2 +#l3-interface-ipv6-address-list widget details +AAI.model-invariant-id.l3-interface-ipv6-address-list=82966045-43ee-4982-8307-7e9610866140 +AAI.model-version-id.l3-interface-ipv6-address-list=d040621d-541a-477b-bb1b-a2b61b14e295 +#l3-network widget details +AAI.model-version-id.l3-network=9111f20f-e680-4001-b83f-19a2fc23bfc1 +AAI.model-invariant-id.l3-network=3d560d81-57d0-438b-a2a1-5334dba0651a +#lag-interface widget details +AAI.model-version-id.lag-interface=ce95f7c3-b61b-4758-ae9e-7e943b1c103d +AAI.model-invariant-id.lag-interface=e0ee9bde-c1fc-4651-a95d-8e0597bf7d70 +#lag-link widget details +AAI.model-version-id.lag-link=d29a087a-af59-4053-a3f8-0f95a92faa75 +AAI.model-invariant-id.lag-link=86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98 +#license widget details +AAI.model-invariant-id.license=b9a9b337-1f86-42d3-b9f9-f987a089507c +AAI.model-version-id.license=6889274b-a1dc-40ab-9090-93677e13e2e6 +#license-key-resource widget details +AAI.model-invariant-id.license-key-resource=9022ebfe-b54f-4911-a6b2-8c3f5ec189b7 +AAI.model-version-id.license-key-resource=24b25f8c-b8bd-4c62-9421-87c12667aac9 +#l-interface widget details +AAI.model-version-id.l-interface=a32613fd-18b9-459e-aab8-fffb3912966a +AAI.model-invariant-id.l-interface=cea0a982-8d55-4093-921e-418fbccf7060 +#logical-link widget details +AAI.model-version-id.logical-link=a1481a38-f8ba-4ae4-bdf1-06c2c6af4c54 +AAI.model-invariant-id.logical-link=fe012535-2c31-4a39-a739-612374c638a0 +#metadatum widget details +AAI.model-invariant-id.metadatum=86dbb63a-265e-4614-993f-6771c30b56a5 +AAI.model-version-id.metadatum=6bae950e-8939-41d3-a6a7-251b03e4c1fc +#model widget details +AAI.model-invariant-id.model=06d1418a-5faa-452d-a94b-a2829df5f67b +AAI.model-version-id.model=1f51c05c-b164-4c27-9c03-5cbb239fd6be +#model-constraint widget details +AAI.model-invariant-id.model-constraint=c28966f3-e758-4483-b37b-a90b05d3dd33 +AAI.model-version-id.model-constraint=ad70dd19-f156-4fb5-a865-97b5563b0d37 +#model-element widget details +AAI.model-invariant-id.model-element=2076e726-3577-477a-a300-7fa65cd4df11 +AAI.model-version-id.model-element=753e813a-ba9e-4a1d-ab34-b2f6dc6eec0c +#multicast-configuration widget details +AAI.model-invariant-id.multicast-configuration=ea78c9e3-514d-4a0a-9162-13837fa54c35 +AAI.model-version-id.multicast-configuration=666a06ee-4b57-46df-bacf-908da8f10c3f +#named-query widget details +AAI.model-version-id.named-query=5c3b7c33-afa3-4be5-8da7-1a5ac6f99896 +AAI.model-invariant-id.named-query=80b712fd-0ad3-4180-a99c-8c995cf1cc32 +#named-query-element widget details +AAI.model-version-id.named-query-element=204c641a-3494-48c8-979a-86856f5fd32a +AAI.model-invariant-id.named-query-element=3c504d40-b847-424c-9d25-4fb7e0a3e994 +#network-policy widget details +AAI.model-invariant-id.network-policy=6aa05779-94d7-4d8b-9bee-59ef2ab0c246 +AAI.model-version-id.network-policy=a0ccd9dc-7062-4940-9bcc-e91dd28af510 +#network-profile widget details +AAI.model-version-id.network-profile=01f45471-4240-498c-a9e1-235dc0b8b4a6 +AAI.model-invariant-id.network-profile=2734b44a-b8a2-40f6-957d-6256589e5d00 +#newvce widget details +AAI.model-version-id.newvce=7c79e11f-a408-4593-aa86-ba948a1236af +AAI.model-invariant-id.newvce=4b05ec9c-c55d-4987-83ff-e08d6ddb694f +#oam-network widget details +AAI.model-invariant-id.oam-network=2851cf01-9c40-4064-87d4-6184a6fcff35 +AAI.model-version-id.oam-network=f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79 +#physical-link widget details +AAI.model-invariant-id.physical-link=c822d81f-822f-4304-9623-1025b53da568 +AAI.model-version-id.physical-link=9c523936-95b4-4d7f-9f53-6bdfe0cf2c05 +#p-interface widget details +AAI.model-invariant-id.p-interface=94043c37-4e73-439c-a790-0fdd697924cd +AAI.model-version-id.p-interface=d2cdb2d0-fc1f-4a57-a89e-591b1c4e3754 +#pnf widget details +AAI.model-version-id.pnf=e9f1fa7d-c839-418a-9601-03dc0d2ad687 +AAI.model-invariant-id.pnf=862b25a1-262a-4961-bdaa-cdc55d69785a +#port-group widget details +AAI.model-version-id.port-group=03e8bb6b-b48a-46ae-b5d4-e5af577e6844 +AAI.model-invariant-id.port-group=8ce940fb-55d7-4230-9e7f-a56cc2741f77 +#property-constraint widget details +AAI.model-version-id.property-constraint=81706bbd-981e-4362-ae20-995cbcb2d995 +AAI.model-invariant-id.property-constraint=f4a863c3-6886-470a-a6ae-05723837ea45 +#pserver widget details +AAI.model-invariant-id.pserver=6d932c8f-463b-4e76-83fb-87acfbaa2e2d +AAI.model-version-id.pserver=72f0d495-bc27-4653-9e1a-eef76bd34bc9 +#related-lookup widget details +AAI.model-invariant-id.related-lookup=468f6f5b-2996-41bb-b2a3-7cf9613ebb9b +AAI.model-version-id.related-lookup=0988bab5-bf4f-4938-a419-ab249867d12a +#reserved-prop-names widget details +AAI.model-invariant-id.reserved-prop-names=0c3e0ba3-618c-498d-9127-c8d42b00170f +AAI.model-version-id.reserved-prop-names=ac49d26d-9163-430e-934a-13b738a04f5c +#result-data widget details +AAI.model-version-id.result-data=4e9b50aa-5227-4f6f-b489-62e6bbc03c79 +AAI.model-invariant-id.result-data=ff656f23-6185-406f-9006-4b26834f3e1c +#route-table-reference widget details +AAI.model-version-id.route-table-reference=fed7e326-03a7-45ff-a3f2-471470d268c4 +AAI.model-invariant-id.route-table-reference=a8614b63-2636-4c4f-98df-fd448c4241db +#routing-instance widget details +AAI.model-invariant-id.routing-instance=1c2ded4f-8b01-4193-829c-966847dfec3e +AAI.model-version-id.routing-instance=3ccbcbc7-d19e-44d5-a52f-7e18aa8d69fa +#secondary-filter widget details +AAI.model-version-id.secondary-filter=1380619d-dd1a-4cec-b755-c6407833e065 +AAI.model-invariant-id.secondary-filter=738ff299-6290-4c00-8998-bd0e96a07b93 +#segmentation-assignment widget details +AAI.model-invariant-id.segmentation-assignment=6e814aee-46e1-4583-a9d4-0049bfd2b59b +AAI.model-version-id.segmentation-assignment=c5171ae0-44fb-4c04-b482-d56702241a44 +#service widget details +AAI.model-version-id.service=ecce2c42-3957-4ae0-9442-54bc6afe27b6 +AAI.model-invariant-id.service=07a3a60b-1b6c-4367-8173-8014386f89e3 +#service-capability widget details +AAI.model-invariant-id.service-capability=b1a7cc05-d19d-443b-a5d1-733e325c4232 +AAI.model-version-id.service-capability=f9cfec1b-18da-4bba-bd83-4b26cca115cd +#service-instance widget details +AAI.model-invariant-id.service-instance=82194af1-3c2c-485a-8f44-420e22a9eaa4 +AAI.model-version-id.service-instance=46b92144-923a-4d20-b85a-3cbd847668a9 +#service-subscription widget details +AAI.model-invariant-id.service-subscription=2e1a602a-acd8-4f78-94ff-618b802a303b +AAI.model-version-id.service-subscription=5e68299a-79f2-4bfb-8fbc-2bae877a2459 +#site-pair widget details +AAI.model-version-id.site-pair=7106bc02-6552-4fc3-8a56-4f3df9034531 +AAI.model-invariant-id.site-pair=db63f3e6-f8d1-484e-8d5e-191600b7914b +#site-pair-set widget details +AAI.model-invariant-id.site-pair-set=5d4dae3e-b402-4bfd-909e-ece12ff75d26 +AAI.model-version-id.site-pair-set=a5c6c1bc-dc38-468e-9459-bb08f87247df +#snapshot widget details +AAI.model-version-id.snapshot=962a7c8b-687f-4d32-a775-fe098e214bcd +AAI.model-invariant-id.snapshot=24de00ef-aead-4b52-995b-0adf8d4bd90d +#sriov-vf widget details +AAI.model-version-id.sriov-vf=1e8b331f-3d4a-4160-b7aa-f4d5a8916625 +AAI.model-invariant-id.sriov-vf=04b2935f-33c4-40a9-8af0-8b52690042dc +#start-node-filter widget details +AAI.model-version-id.start-node-filter=aad96fd3-e75f-42fc-9777-3450c36f1168 +AAI.model-invariant-id.start-node-filter=083093a3-e407-447a-ba5d-7583e4d23e1d +#subnet widget details +AAI.model-version-id.subnet=f902a6bc-6be4-4fe5-8458-a6ec0056b374 +AAI.model-invariant-id.subnet=1b2c9ba7-e449-4831-ba15-3073672f5ef2 +#tagged-inventory-item-list widget details +AAI.model-invariant-id.tagged-inventory-item-list=e78a7eaa-f65d-4919-9c2b-5b258c8c4d7e +AAI.model-version-id.tagged-inventory-item-list=c246f6e2-e3a1-4697-94c0-5672a7fbbf04 +#tenant widget details +AAI.model-invariant-id.tenant=97c26c99-6870-44c1-8a07-1d900d3f4ce6 +AAI.model-version-id.tenant=abcc54bc-bb74-49dc-9043-7f7171707545 +#tunnel-xconnect widget details +AAI.model-invariant-id.tunnel-xconnect=50b9e2fa-005c-4bbe-b651-3251dece4cd8 +AAI.model-version-id.tunnel-xconnect=e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5 +#update-node-key widget details +AAI.model-version-id.update-node-key=6004cfa6-eb6d-4062-971f-b1fde6b74aa0 +AAI.model-invariant-id.update-node-key=fe81c801-f65d-408a-b2b7-a729a18f8154 +#vce widget details +AAI.model-version-id.vce=b6cf54b5-ec45-43e1-be64-97b4e1513333 +AAI.model-invariant-id.vce=bab6dceb-e7e6-4301-a5e0-a7399b48d792 +#vf-module widget details +AAI.model-invariant-id.vf-module=ef86f9c5-2165-44f3-8fc3-96018b609ea5 +AAI.model-version-id.vf-module=c00563ae-812b-4e62-8330-7c4d0f47088a +#vig-server widget details +AAI.model-version-id.vig-server=8e8c22f1-fbdf-48ea-844c-8bdeb44e7b16 +AAI.model-invariant-id.vig-server=bed7c3b7-35d0-4cd9-abde-41b20e68b28e +#virtual-data-center widget details +AAI.model-invariant-id.virtual-data-center=5150abcf-0c5f-4593-9afe-a19c48fc4824 +AAI.model-version-id.virtual-data-center=6dd43ced-d789-47af-a759-d3abc14e3ac1 +#vlan widget details +AAI.model-version-id.vlan=257d88a5-a269-4c35-944f-aca04fbdb791 +AAI.model-invariant-id.vlan=d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8 +#vnfc widget details +AAI.model-invariant-id.vnfc=96129eb9-f0de-4e05-8af2-73146473f766 +AAI.model-version-id.vnfc=5761e0a7-c6df-4d8a-9ebd-b8f445054dec +#vnf-image widget details +AAI.model-invariant-id.vnf-image=f9a628ff-7aa0-40e2-a93d-02d91c950982 +AAI.model-version-id.vnf-image=c4d3e747-ba4a-4b17-9896-94c6f18c19d3 +#volume widget details +AAI.model-version-id.volume=0fbe2e8f-4d91-4415-a772-88387049b38d +AAI.model-invariant-id.volume=ddd739b4-2b25-46c4-affc-41a32af5cc42 +#volume-group widget details +AAI.model-invariant-id.volume-group=fcec1b02-b2d0-4834-aef8-d71be04717dd +AAI.model-version-id.volume-group=99d44c90-1f61-4418-b9a6-56586bf38c79 +#vpe widget details +AAI.model-invariant-id.vpe=053ec3a7-5b72-492d-b54d-123805a9b967 +AAI.model-version-id.vpe=203817d3-829c-42d4-942d-2a935478e993 +#vpls-pe widget details +AAI.model-version-id.vpls-pe=b1566228-6785-4ce1-aea2-053736f80341 +AAI.model-invariant-id.vpls-pe=457ba89b-334c-4fbd-acc4-160ac0e0cdc0 +#vpn-binding widget details +AAI.model-invariant-id.vpn-binding=9e23b675-db2b-488b-b459-57aa9857baa0 +AAI.model-version-id.vpn-binding=21a146e5-9901-448c-9197-723076770119 +#vserver widget details +AAI.model-invariant-id.vserver=ff69d4e0-a8e8-4108-bdb0-dd63217e63c7 +AAI.model-version-id.vserver=8ecb2c5d-7176-4317-a255-26274edfdd53
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json b/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json new file mode 100644 index 0000000000..5340a6ac75 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json @@ -0,0 +1,47 @@ +{"roles": [ + { + "name": "admin", + "functions": [ + { + "name": "generateArtifacts", + "methods": [{"name": "POST"}] + } + ], + "users": [ + {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + ] + }, + { + "name": "ops", + "functions": [{ + "name": "actions", + "methods": [{"name": "POST"}] + }], + "users": [ + {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + ] + }, + { + "name": "readonly", + "functions": [ + { + "name": "actions", + "methods": [{"name": "GET"}] + } + ], + "users": [ + {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + ] + }, + { + "name": "basicauth", + "functions": [{ + "name": "util", + "methods": [{"name": "GET"}] + }], + "users": [{ + "user": "aai", + "pass": "OBF:deadbeef" + }] + } +]} diff --git a/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore b/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore Binary files differnew file mode 100644 index 0000000000..cbec390428 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore diff --git a/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties b/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties new file mode 100644 index 0000000000..8bf21b0b95 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties @@ -0,0 +1,2 @@ +auth.policy.file=/auth/auth_policy.json +auth.authentication.disable=false diff --git a/kubernetes/aai/charts/aai-babel/templates/configmap.yaml b/kubernetes/aai/charts/aai-babel/templates/configmap.yaml new file mode 100644 index 0000000000..ea304dc5e2 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }} diff --git a/kubernetes/aai/charts/aai-babel/templates/deployment.yaml b/kubernetes/aai/charts/aai-babel/templates/deployment.yaml new file mode 100644 index 0000000000..6b1312bbdc --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/templates/deployment.yaml @@ -0,0 +1,108 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: {{ include "common.name" . }} + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: CONFIG_HOME + value: /opt/app/babel/config + - name: KEY_STORE_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }}-pass + key: KEY_STORE_PASSWORD + - name: KEY_MANAGER_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "common.fullname" . }}-pass + key: KEY_MANAGER_PASSWORD + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /opt/app/babel/config/artifact-generator.properties + name: {{ include "common.fullname" . }}-config + subPath: artifact-generator.properties + - mountPath: /opt/app/babel/config/babel-auth.properties + name: {{ include "common.fullname" . }}-config + subPath: babel-auth.properties + - mountPath: /opt/app/babel/config/auth + name: {{ include "common.fullname" . }}-secrets + - mountPath: /logs + name: {{ include "common.fullname" . }}-logs + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-config + configMap: + name: {{ include "common.fullname" . }}-configmap + items: + - key: artifact-generator.properties + path: artifact-generator.properties + - key: babel-auth.properties + path: babel-auth.properties + - name: {{ include "common.fullname" . }}-secrets + secret: + secretName: {{ include "common.fullname" . }}-babel-secrets + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-babel/templates/secrets.yaml b/kubernetes/aai/charts/aai-babel/templates/secrets.yaml new file mode 100644 index 0000000000..9875e573e1 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/templates/secrets.yaml @@ -0,0 +1,37 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.fullname" . }}-babel-secrets + namespace: {{ include "common.namespace" . }} +type: Opaque +data: +{{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "common.fullname" . }}-pass + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +type: Opaque +data: + KEY_STORE_PASSWORD: {{ .Values.config.keyStorePassword | b64enc | quote }} + KEY_MANAGER_PASSWORD: {{ .Values.config.keyManagerPassword | b64enc | quote }} diff --git a/kubernetes/aai/charts/aai-babel/templates/service.yaml b/kubernetes/aai/charts/aai-babel/templates/service.yaml new file mode 100644 index 0000000000..93b0fd1254 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/templates/service.yaml @@ -0,0 +1,39 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.internalPort}} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort}} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} diff --git a/kubernetes/aai/charts/aai-babel/values.yaml b/kubernetes/aai/charts/aai-babel/values.yaml new file mode 100644 index 0000000000..d6440000ee --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/values.yaml @@ -0,0 +1,63 @@ +# Copyright © 2018 Amdocs, AT&T +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + readinessImage: readiness-check:1.0.0 + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# + +# application image +image: onap/babel:1.2-STAGING-latest + +# application configuration +config: + keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o + keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: false + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: NodePort + name: babel + externalPort: 79 + internalPort: 9516 + nodePort: 79 + +ingress: + enabled: false + +resources: {} diff --git a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v10.xml b/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v10.xml deleted file mode 100644 index 7eddd10179..0000000000 --- a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v10.xml +++ /dev/null @@ -1,5558 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- - ============LICENSE_START======================================================= - org.openecomp.aai - ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - ================================================================================ - 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. - ============LICENSE_END========================================================= - --> - -<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.openecomp.org.v10" xml-mapping-metadata-complete="true"> - <xml-schema element-form-default="QUALIFIED"> - <xml-ns namespace-uri="http://org.openecomp.aai.inventory/v10" /> - </xml-schema> - <java-types> - <java-type name="Inventory"> - <xml-root-element name="inventory" /> - <java-attributes> - <xml-element java-attribute="search" name="search" type="inventory.aai.openecomp.org.v10.Search" /> - <xml-element java-attribute="actions" name="actions" type="inventory.aai.openecomp.org.v10.Actions" /> - <xml-element java-attribute="cloudInfrastructure" name="cloud-infrastructure" type="inventory.aai.openecomp.org.v10.CloudInfrastructure" /> - <xml-element java-attribute="business" name="business" type="inventory.aai.openecomp.org.v10.Business" /> - <xml-element java-attribute="serviceDesignAndCreation" name="service-design-and-creation" type="inventory.aai.openecomp.org.v10.ServiceDesignAndCreation" /> - <xml-element java-attribute="network" name="network" type="inventory.aai.openecomp.org.v10.Network" /> - <xml-element java-attribute="aaiInternal" name="aai-internal" type="inventory.aai.openecomp.org.v10.AaiInternal" /> - <xml-element java-attribute="nodes" name="nodes" type="inventory.aai.openecomp.org.v10.Nodes"/> - </java-attributes> - </java-type> - - <java-type name="Nodes"> - <xml-root-element name="nodes" /> - </java-type> - <java-type name="Search"> - <xml-root-element name="search" /> - <java-attributes> - <xml-element java-attribute="edgeTagQueryResult" name="edge-tag-query-result" type="inventory.aai.openecomp.org.v10.EdgeTagQueryResult" /> - <xml-element java-attribute="edgeTagQueryRequest" name="edge-tag-query-request" type="inventory.aai.openecomp.org.v10.EdgeTagQueryRequest" /> - <xml-element java-attribute="searchResults" name="search-results" type="inventory.aai.openecomp.org.v10.SearchResults" /> - <xml-element java-attribute="sdnZoneResponse" name="sdn-zone-response" type="inventory.aai.openecomp.org.v10.SdnZoneResponse" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryResult"> - <xml-root-element name="edge-tag-query-result" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.openecomp.org.v10.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="TaggedInventoryItemList"> - <xml-root-element name="tagged-inventory-item-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItem" name="inventory-item" type="inventory.aai.openecomp.org.v10.InventoryItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItem"> - <xml-root-element name="inventory-item" /> - <java-attributes> - <xml-element java-attribute="inventoryItemType" name="inventory-item-type" type="java.lang.String" /> - <xml-element java-attribute="inventoryItemLink" name="inventory-item-link" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItemData" name="inventory-item-data" type="inventory.aai.openecomp.org.v10.InventoryItemData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.openecomp.org.v10.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItemData"> - <xml-root-element name="inventory-item-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryRequest"> - <xml-root-element name="edge-tag-query-request" /> - <java-attributes> - <xml-element java-attribute="edgeTag" name="edge-tag" type="java.lang.String" /> - <xml-element java-attribute="resultDetail" name="result-detail" type="java.lang.String" /> - <xml-element java-attribute="startNodeType" name="start-node-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="startNodeFilter" name="start-node-filter" type="inventory.aai.openecomp.org.v10.StartNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="includeNodeFilter" name="include-node-filter" type="inventory.aai.openecomp.org.v10.IncludeNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilter" name="secondary-filter" type="inventory.aai.openecomp.org.v10.SecondaryFilter" /> - </java-attributes> - </java-type> - - <java-type name="StartNodeFilter"> - <xml-root-element name="start-node-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="IncludeNodeFilter"> - <xml-root-element name="include-node-filter" /> - <java-attributes> - <xml-element java-attribute="includeNodeType" name="include-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilter"> - <xml-root-element name="secondary-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="filterType" name="filter-type" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SearchResults"> - <xml-root-element name="search-results" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="resultData" name="result-data" type="inventory.aai.openecomp.org.v10.ResultData" /> - </java-attributes> - </java-type> - - <java-type name="ResultData"> - <xml-root-element name="result-data" /> - <java-attributes> - <xml-element java-attribute="resourceType" name="resource-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The specific type of node in the A&AI graph" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceLink" name="resource-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The URL to the specific resource" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="SdnZoneResponse"> - <xml-root-element name="sdn-zone-response" /> - <java-attributes> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.openecomp.org.v10.OamNetworks" /> - <xml-element container-type="java.util.ArrayList" java-attribute="azAndDvsSwitches" name="az-and-dvs-switches" type="inventory.aai.openecomp.org.v10.AzAndDvsSwitches" /> - </java-attributes> - </java-type> - - <java-type name="AzAndDvsSwitches"> - <xml-root-element name="az-and-dvs-switches" /> - <java-attributes> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.openecomp.org.v10.DvsSwitches" /> - <xml-element java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.openecomp.org.v10.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="Actions"> - <xml-properties> - <xml-property name="description" value="APIs that are more action related than REST (e.g., notify, update)." /> - </xml-properties> - <xml-root-element name="actions" /> - <java-attributes> - <xml-element java-attribute="update" name="update" type="inventory.aai.openecomp.org.v10.Update" /> - <xml-element java-attribute="notify" name="notify" type="inventory.aai.openecomp.org.v10.Notify" /> - </java-attributes> - </java-type> - - <java-type name="Update"> - <xml-properties> - <xml-property name="description" value="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team." /> - </xml-properties> - <xml-root-element name="update" /> - <java-attributes> - <xml-element java-attribute="updateNodeType" name="update-node-type" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="updateNodeKey" name="update-node-key" type="inventory.aai.openecomp.org.v10.UpdateNodeKey" /> - <xml-element java-attribute="updateNodeUri" name="update-node-uri" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="action" name="action" type="inventory.aai.openecomp.org.v10.Action" /> - </java-attributes> - </java-type> - - <java-type name="Action"> - <xml-root-element name="action" /> - <java-attributes> - <xml-element java-attribute="actionType" name="action-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="actionData" name="action-data" type="inventory.aai.openecomp.org.v10.ActionData" /> - </java-attributes> - </java-type> - - <java-type name="ActionData"> - <xml-root-element name="action-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="UpdateNodeKey"> - <xml-root-element name="update-node-key" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Notify"> - <xml-root-element name="notify" /> - <java-attributes> - <xml-element java-attribute="eventId" name="event-id" required="true" type="java.lang.String" /> - <xml-element java-attribute="nodeType" name="node-type" type="java.lang.String" /> - <xml-element java-attribute="eventTrigger" name="event-trigger" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="keyData" name="key-data" type="inventory.aai.openecomp.org.v10.KeyData" /> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="KeyData"> - <xml-root-element name="key-data" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="CloudInfrastructure"> - <xml-properties> - <xml-property name="description" value="Namespace for cloud infrastructure." /> - </xml-properties> - <xml-root-element name="cloud-infrastructure" /> - <java-attributes> - <xml-element java-attribute="complexes" name="complexes" type="inventory.aai.openecomp.org.v10.Complexes" /> - <xml-element java-attribute="cloudRegions" name="cloud-regions" type="inventory.aai.openecomp.org.v10.CloudRegions" /> - <xml-element java-attribute="networkProfiles" name="network-profiles" type="inventory.aai.openecomp.org.v10.NetworkProfiles" /> - <xml-element java-attribute="pservers" name="pservers" type="inventory.aai.openecomp.org.v10.Pservers" /> - <xml-element java-attribute="virtualDataCenters" name="virtual-data-centers" type="inventory.aai.openecomp.org.v10.VirtualDataCenters" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegions"> - <xml-root-element name="cloud-regions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cloudRegion" name="cloud-region" type="inventory.aai.openecomp.org.v10.CloudRegion" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="CloudRegion"> - <xml-root-element name="cloud-region" /> - <java-attributes> - <xml-element java-attribute="cloudOwner" name="cloud-owner" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionId" name="cloud-region-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifier used by the vendor for the region. Second part of composite key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudType" name="cloud-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the cloud (e.g., openstack)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ownerDefinedType" name="owner-defined-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Cloud-owner defined type indicator (e.g., dcp, lcp)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionVersion" name="cloud-region-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudZone" name="cloud-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroups" name="volume-groups" type="inventory.aai.openecomp.org.v10.VolumeGroups" /> - <xml-element java-attribute="tenants" name="tenants" type="inventory.aai.openecomp.org.v10.Tenants" /> - <xml-element java-attribute="flavors" name="flavors" type="inventory.aai.openecomp.org.v10.Flavors" /> - <xml-element java-attribute="groupAssignments" name="group-assignments" type="inventory.aai.openecomp.org.v10.GroupAssignments" /> - <xml-element java-attribute="snapshots" name="snapshots" type="inventory.aai.openecomp.org.v10.Snapshots" /> - <xml-element java-attribute="images" name="images" type="inventory.aai.openecomp.org.v10.Images" /> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.openecomp.org.v10.DvsSwitches" /> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.openecomp.org.v10.OamNetworks" /> - <xml-element java-attribute="availabilityZones" name="availability-zones" type="inventory.aai.openecomp.org.v10.AvailabilityZones" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC." /> - <xml-property name="indexedProps" value="cloud-owner,cloud-region-id,cloud-type,owner-defined-type" /> - <xml-property name="nameProps" value="owner-defined-type" /> - <xml-property name="container" value="cloud-regions" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - <java-type name="VolumeGroups"> - <xml-properties> - <xml-property name="description" value="Collection of persistent block-level storage." /> - </xml-properties> - <xml-root-element name="volume-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volumeGroup" name="volume-group" type="inventory.aai.openecomp.org.v10.VolumeGroup" /> - </java-attributes> - </java-type> - - <java-type name="VolumeGroup"> - <xml-root-element name="volume-group" /> - <java-attributes> - <xml-element java-attribute="volumeGroupId" name="volume-group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of volume-group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroupName" name="volume-group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the volume group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleModelCustomizationId" name="vf-module-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="helps relate the volume group to the vf-module whose components will require the volume group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persistent block-level storage." /> - <xml-property name="indexedProps" value="volume-group-name,vnf-type,heat-stack-id,volume-group-id" /> - <xml-property name="searchable" value="volume-group-id,volume-group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="volume-groups" /> - </xml-properties> - </java-type> - - <java-type name="RelationshipList"> - <xml-root-element name="relationship-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.openecomp.org.v10.Relationship" /> - </java-attributes> - </java-type> - - <java-type name="Relationship"> - <xml-root-element name="relationship" /> - <java-attributes> - <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate type of node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to the object in A&AI." /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.openecomp.org.v10.RelationshipData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.openecomp.org.v10.RelatedToProperty" /> - </java-attributes> - </java-type> - - <java-type name="RelatedToProperty"> - <xml-root-element name="related-to-property" /> - <java-attributes> - <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Key part of a key/value pair" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value part of a key/value pair" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="RelationshipData"> - <xml-root-element name="relationship-data" /> - <java-attributes> - <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate an attribute." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value of the attribute." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="Complexes"> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - </xml-properties> - <xml-root-element name="complexes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="complex" name="complex" type="inventory.aai.openecomp.org.v10.Complex" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Complex"> - <xml-root-element name="complex" /> - <java-attributes> - <xml-element java-attribute="physicalLocationId" name="physical-location-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for physical location, e.g., CLLI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dataCenterCode" name="data-center-code" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Data center code which can be an alternate way to identify a complex" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gamma complex name for LCP instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalLocationType" name="physical-location-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type, e.g., central office, data center." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="street1" name="street1" required="true" type="java.lang.String" /> - <xml-element java-attribute="street2" name="street2" type="java.lang.String" /> - <xml-element java-attribute="city" name="city" required="true" type="java.lang.String" /> - <xml-element java-attribute="state" name="state" type="java.lang.String" /> - <xml-element java-attribute="postalCode" name="postal-code" required="true" type="java.lang.String" /> - <xml-element java-attribute="country" name="country" required="true" type="java.lang.String" /> - <xml-element java-attribute="region" name="region" required="true" type="java.lang.String" /> - <xml-element java-attribute="latitude" name="latitude" type="java.lang.String" /> - <xml-element java-attribute="longitude" name="longitude" type="java.lang.String" /> - <xml-element java-attribute="elevation" name="elevation" type="java.lang.String" /> - <xml-element java-attribute="lata" name="lata" type="java.lang.String" /> - <xml-element java-attribute="ctagPools" name="ctag-pools" type="inventory.aai.openecomp.org.v10.CtagPools" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - <xml-property name="indexedProps" value="identity-url,data-center-code,complex-name,physical-location-id" /> - <xml-property name="searchable" value="physical-location-id,data-center-code,complex-name,street1,street2,postal-code" /> - <xml-property name="uniqueProps" value="physical-location-id" /> - <xml-property name="container" value="complexes" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="CtagPools"> - <xml-root-element name="ctag-pools" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagPool" name="ctag-pool" type="inventory.aai.openecomp.org.v10.CtagPool" /> - </java-attributes> - </java-type> - - <java-type name="CtagPool"> - <xml-root-element name="ctag-pool" /> - <java-attributes> - <xml-element java-attribute="targetPe" name="target-pe" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="The Target provider edge router" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagPoolPurpose" name="ctag-pool-purpose" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Describes what the intended purpose of this pool is." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagValues" name="ctag-values" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Comma separated list of ctags" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A collection of C tags (vlan tags) grouped for a specific purpose." /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="complex" /> - <xml-property name="container" value="ctag-pools" /> - </xml-properties> - </java-type> - - <java-type name="Tenants"> - <xml-properties> - <xml-property name="description" value="Collection of openstack tenants." /> - </xml-properties> - <xml-root-element name="tenants" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tenant" name="tenant" type="inventory.aai.openecomp.org.v10.Tenant" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Tenant"> - <xml-root-element name="tenant" /> - <java-attributes> - <xml-element java-attribute="tenantId" name="tenant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id relative to the cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tenantName" name="tenant-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Readable name of tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vservers" name="vservers" type="inventory.aai.openecomp.org.v10.Vservers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack tenant" /> - <xml-property name="nameProps" value="tenant-name" /> - <xml-property name="indexedProps" value="tenant-name,tenant-id" /> - <xml-property name="searchable" value="tenant-id,tenant-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="tenants" /> - </xml-properties> - </java-type> - - <java-type name="Vservers"> - <xml-properties> - <xml-property name="description" value="Collection of virtual Servers, aka virtual machines or VMs." /> - </xml-properties> - <xml-root-element name="vservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vserver" name="vserver" type="inventory.aai.openecomp.org.v10.Vserver" /> - </java-attributes> - </java-type> - - <java-type name="Vserver"> - <xml-root-element name="vserver" /> - <java-attributes> - <xml-element java-attribute="vserverId" name="vserver-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for this vserver relative to its tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName" name="vserver-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName2" name="vserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternative name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverSelflink" name="vserver-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumes" name="volumes" type="inventory.aai.openecomp.org.v10.Volumes" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Servers, aka virtual machine or VM." /> - <xml-property name="nameProps" value="vserver-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2" /> - <xml-property name="searchable" value="vserver-id,vserver-name,vserver-name2" /> - <xml-property name="dependentOn" value="tenant" /> - <xml-property name="container" value="vservers" /> - </xml-properties> - </java-type> - - <java-type name="LInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of logical interfaces." /> - </xml-properties> - <xml-root-element name="l-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.openecomp.org.v10.LInterface" /> - </java-attributes> - </java-type> - - <java-type name="LInterface"> - <xml-root-element name="l-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name given to the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MAC address for the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Human friendly text regarding this interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isPortMirrored" name="is-port-mirrored" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not port is a mirrored." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.openecomp.org.v10.Vlans" /> - <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.openecomp.org.v10.SriovVfs" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.openecomp.org.v10.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.openecomp.org.v10.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical interfaces, e.g., a vnic." /> - <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name" /> - <xml-property name="dependentOn" value="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface" /> - <xml-property name="container" value="l-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="SriovVfs"> - <xml-properties> - <xml-property name="description" value="Collection of SR-IOV Virtual Functions." /> - </xml-properties> - <xml-root-element name="sriov-vfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sriovVf" name="sriov-vf" type="inventory.aai.openecomp.org.v10.SriovVf" /> - </java-attributes> - </java-type> - <java-type name="SriovVf"> - <xml-root-element name="sriov-vf" /> - <java-attributes> - <xml-element java-attribute="pciId" name="pci-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="PCI ID used to identify the sriov-vf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanFilter" name="vf-vlan-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacFilter" name="vf-mac-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanStrip" name="vf-vlan-strip" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanAntiSpoofCheck" name="vf-vlan-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacAntiSpoofCheck" name="vf-mac-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMirrors" name="vf-mirrors" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfBroadcastAllow" name="vf-broadcast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownMulticastAllow" name="vf-unknown-multicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownUnicastAllow" name="vf-unknown-unicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfInsertStag" name="vf-insert-stag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, instructs to insert outer tag after traffic comes out of VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfLinkStatus" name="vf-link-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option is used to set the link status. Valid values as of 1607 are on, off, and auto." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="SR-IOV Virtual Function (not to be confused with virtual network function)" /> - <xml-property name="indexedProps" value="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="sriov-vfs" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv4AddressList"> - <xml-root-element name="l3-interface-ipv4-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 32 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv4 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Vlans"> - <xml-root-element name="vlans" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.openecomp.org.v10.Vlan" /> - </java-attributes> - </java-type> - - <java-type name="Vlan"> - <xml-root-element name="vlan" /> - <java-attributes> - <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String that identifies the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to describe (the service associated with) the vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnId" name="vpn-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan" /> - <xml-property name="dbAlias" value="vpn-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.openecomp.org.v10.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.openecomp.org.v10.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Definition of vlan" /> - <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-id" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="vlans" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv6AddressList"> - <xml-root-element name="l3-interface-ipv6-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 128 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv6 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Volumes"> - <xml-properties> - <xml-property name="description" value="Collection of ephemeral Block storage volumes." /> - </xml-properties> - <xml-root-element name="volumes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volume" name="volume" type="inventory.aai.openecomp.org.v10.Volume" /> - </java-attributes> - </java-type> - - <java-type name="Volume"> - <xml-root-element name="volume" /> - <java-attributes> - <xml-element java-attribute="volumeId" name="volume-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of block storage volume relative to the vserver." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeSelflink" name="volume-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Ephemeral Block storage volume." /> - <xml-property name="indexedProps" value="volume-id" /> - <xml-property name="dependentOn" value="vserver" /> - <xml-property name="container" value="volumes" /> - </xml-properties> - </java-type> - - <java-type name="Flavors"> - <xml-properties> - <xml-property name="description" value="Collection of openstack flavors." /> - </xml-properties> - <xml-root-element name="flavors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="flavor" name="flavor" type="inventory.aai.openecomp.org.v10.Flavor" /> - </java-attributes> - </java-type> - - <java-type name="Flavor"> - <xml-root-element name="flavor" /> - <java-attributes> - <xml-element java-attribute="flavorId" name="flavor-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Flavor id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorName" name="flavor-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Flavor name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorVcpus" name="flavor-vcpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of CPUs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorRam" name="flavor-ram" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of memory" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisk" name="flavor-disk" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorEphemeral" name="flavor-ephemeral" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of ephemeral disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSwap" name="flavor-swap" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="amount of swap space allocation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorIsPublic" name="flavor-is-public" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="whether flavor is available to all users or private to the tenant it was created in." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSelflink" name="flavor-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisabled" name="flavor-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Boolean as to whether this flavor is no longer enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack flavor." /> - <xml-property name="nameProps" value="flavor-name" /> - <xml-property name="indexedProps" value="flavor-name,flavor-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="flavors" /> - </xml-properties> - </java-type> - - <java-type name="Snapshots"> - <xml-properties> - <xml-property name="description" value="Collection of openstack snapshots" /> - </xml-properties> - <xml-root-element name="snapshots" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="snapshot" name="snapshot" type="inventory.aai.openecomp.org.v10.Snapshot" /> - </java-attributes> - </java-type> - - <java-type name="Snapshot"> - <xml-root-element name="snapshot" /> - <java-attributes> - <xml-element java-attribute="snapshotId" name="snapshot-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Snapshot id, this is the key UUID assoc associated in glance with the snapshots." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotName" name="snapshot-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Snapshot name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotArchitecture" name="snapshot-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsDistro" name="snapshot-os-distro" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsVersion" name="snapshot-os-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotSelflink" name="snapshot-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="prevSnapshotId" name="prev-snapshot-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field contains the UUID of the previous snapshot (if any)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack snapshot" /> - <xml-property name="nameProps" value="snapshot-name" /> - <xml-property name="uniqueProps" value="snapshot-id" /> - <xml-property name="indexedProps" value="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="snapshots" /> - </xml-properties> - </java-type> - - <java-type name="GroupAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack group assignments" /> - </xml-properties> - <xml-root-element name="group-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="groupAssignment" name="group-assignment" type="inventory.aai.openecomp.org.v10.GroupAssignment" /> - </java-attributes> - </java-type> - - <java-type name="GroupAssignment"> - <xml-root-element name="group-assignment" /> - <java-attributes> - <xml-element java-attribute="groupId" name="group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Group id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupType" name="group-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group type - the type of group this instance refers to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupName" name="group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name - name assigned to the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupDescription" name="group-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group description - description of the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack group-assignment used to store exclusivity groups (EG)." /> - <xml-property name="nameProps" value="group-name" /> - <xml-property name="indexedProps" value="group-id,group-type,group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="group-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Images"> - <xml-properties> - <xml-property name="description" value="Collectio of Openstack images." /> - </xml-properties> - <xml-root-element name="images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="image" name="image" type="inventory.aai.openecomp.org.v10.Image" /> - </java-attributes> - </java-type> - - <java-type name="Image"> - <xml-root-element name="image" /> - <java-attributes> - <xml-element java-attribute="imageId" name="image-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Image id, expected to be unique across cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageName" name="image-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Image name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageArchitecture" name="image-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsDistro" name="image-os-distro" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsVersion" name="image-os-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageSelflink" name="image-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v10.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack image." /> - <xml-property name="nameProps" value="image-name" /> - <xml-property name="indexedProps" value="application,image-name,application-vendor,image-id,application-version" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="images" /> - </xml-properties> - </java-type> - - <java-type name="Metadata"> - <xml-properties> - <xml-property name="description" value="Collection of metadatum (key/value pairs)" /> - </xml-properties> - <xml-root-element name="metadata" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.openecomp.org.v10.Metadatum" /> - </java-attributes> - </java-type> - - <java-type name="Metadatum"> - <xml-root-element name="metadatum" /> - <java-attributes> - <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Key/value pairs" /> - <xml-property name="indexedProps" value="metaname" /> - <xml-property name="dependentOn" value="tenant,image,service-instance,connector,model" /> - <xml-property name="container" value="metadata" /> - </xml-properties> - </java-type> - - <java-type name="DvsSwitches"> - <xml-properties> - <xml-property name="description" value="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs." /> - </xml-properties> - <xml-root-element name="dvs-switches" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="dvsSwitch" name="dvs-switch" type="inventory.aai.openecomp.org.v10.DvsSwitch" /> - </java-attributes> - </java-type> - - <java-type name="DvsSwitch"> - <xml-root-element name="dvs-switch" /> - <java-attributes> - <xml-element java-attribute="switchName" name="switch-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="DVS switch name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcenterUrl" name="vcenter-url" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL used to reach the vcenter" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. " /> - <xml-property name="indexedProps" value="vcenter-url,switch-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="dvs-switches" /> - </xml-properties> - </java-type> - - <java-type name="NetworkProfiles"> - <xml-properties> - <xml-property name="description" value="Collection of network profiles" /> - </xml-properties> - <xml-root-element name="network-profiles" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkProfile" name="network-profile" type="inventory.aai.openecomp.org.v10.NetworkProfile" /> - </java-attributes> - </java-type> - - <java-type name="NetworkProfile"> - <xml-root-element name="network-profile" /> - <java-attributes> - <xml-element java-attribute="nmProfileName" name="nm-profile-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique name of network profile." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="communityString" name="community-string" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted SNMP community string" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Network profile populated by SDN-GP for SNMP" /> - <xml-property name="indexedProps" value="nm-profile-name" /> - <xml-property name="container" value="network-profiles" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="Pservers"> - <xml-properties> - <xml-property name="description" value="Collection of compute hosts." /> - </xml-properties> - <xml-root-element name="pservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pserver" name="pserver" type="inventory.aai.openecomp.org.v10.Pserver" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Pserver"> - <xml-root-element name="pserver" /> - <java-attributes> - <xml-element java-attribute="hostname" name="hostname" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value from executing hostname on the compute node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ptniiEquipName" name="ptnii-equip-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="PTNII name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="numberOfCpus" name="number-of-cpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of cpus" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="diskInGigabytes" name="disk-in-gigabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk size, in GBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ramInMegabytes" name="ram-in-megabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="RAM size, in MBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="fqdn" name="fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Fully-qualified domain name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverSelflink" name="pserver-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to configure device, also used for troubleshooting and is IP used for traps generated by device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number, may be queried" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 OAM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverId" name="pserver-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of Pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="internetTopology" name="internet-topology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="internet topology of Pserver" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverName2" name="pserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="alternative pserver name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="purpose of pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v10.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v10.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver." /> - <xml-property name="nameProps" value="pserver-name2" /> - <xml-property name="indexedProps" value="hostname,in-maint,pserver-id,pserver-name2,inv-status" /> - <xml-property name="searchable" value="hostname,pserver-name2,pserver-id,ipv4-oam-address" /> - <xml-property name="container" value="pservers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="PInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of physical interfaces." /> - </xml-properties> - <xml-root-element name="p-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.openecomp.org.v10.PInterface" /> - </java-attributes> - </java-type> - - <java-type name="PInterface"> - <xml-root-element name="p-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the physical interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nature of the services and connectivity on this port." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CLEI or other specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the physical properties of the interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Physical interface (e.g., nic)" /> - <xml-property name="indexedProps" value="interface-name,prov-status" /> - <xml-property name="nameProps" value="prov-status" /> - <xml-property name="dependentOn" value="vpls-pe,pserver,pnf" /> - <xml-property name="container" value="p-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="LagInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregate interfaces." /> - </xml-properties> - <xml-root-element name="lag-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.openecomp.org.v10.LagInterface" /> - </java-attributes> - </java-type> - - <java-type name="LagInterface"> - <xml-root-element name="lag-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the link aggregate interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Human friendly text regarding this interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Link aggregate interface" /> - <xml-property name="indexedProps" value="interface-name,interface-id,interface-role" /> - <xml-property name="dependentOn" value="generic-vnf,pserver,vpe,vpls-pe,pnf" /> - <xml-property name="container" value="lag-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="OamNetworks"> - <xml-properties> - <xml-property name="description" value="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. " /> - </xml-properties> - <xml-root-element name="oam-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="oamNetwork" name="oam-network" type="inventory.aai.openecomp.org.v10.OamNetwork" /> - </java-attributes> - </java-type> - - <java-type name="OamNetwork"> - <xml-root-element name="oam-network" /> - <java-attributes> - <xml-element java-attribute="networkUuid" name="network-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of the network. Unique across a cloud-region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="cvlan-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="OAM network, to be deprecated shortly. Do not use for new purposes. " /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="cvlan-tag,network-uuid,network-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="oam-networks" /> - </xml-properties> - </java-type> - - <java-type name="AvailabilityZones"> - <xml-properties> - <xml-property name="description" value="Collection of availability zones" /> - </xml-properties> - <xml-root-element name="availability-zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.openecomp.org.v10.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="AvailabilityZone"> - <xml-root-element name="availability-zone" /> - <java-attributes> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone. Unique across a cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hypervisorType" name="hypervisor-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of hypervisor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Availability zone, a collection of compute hosts/pservers" /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="availability-zones" /> - </xml-properties> - </java-type> - - <java-type name="VirtualDataCenters"> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - </xml-properties> - <xml-root-element name="virtual-data-centers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="virtualDataCenter" name="virtual-data-center" type="inventory.aai.openecomp.org.v10.VirtualDataCenter" /> - </java-attributes> - </java-type> - - <java-type name="VirtualDataCenter"> - <xml-root-element name="virtual-data-center" /> - <java-attributes> - <xml-element java-attribute="vdcId" name="vdc-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the vdc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdcName" name="vdc-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the virtual data center" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - <xml-property name="nameProps" value="vdc-name" /> - <xml-property name="indexedProps" value="vdc-name,vdc-id" /> - <xml-property name="container" value="virtual-data-centers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - - - - <java-type name="Business"> - <xml-properties> - <xml-property name="description" value="Namespace for business related constructs" /> - </xml-properties> - <xml-root-element name="business" /> - <java-attributes> - <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.openecomp.org.v10.Connectors" /> - <xml-element java-attribute="customers" name="customers" type="inventory.aai.openecomp.org.v10.Customers" /> - </java-attributes> - </java-type> - - <java-type name="Connectors"> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - </xml-properties> - <xml-root-element name="connectors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.openecomp.org.v10.Connector" /> - </java-attributes> - </java-type> - - <java-type name="Connector"> - <xml-root-element name="connector" /> - <java-attributes> - <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of resource instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v10.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - <xml-property name="indexedProps" value="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version" /> - <xml-property name="container" value="connectors" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="Customers"> - <xml-properties> - <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." /> - </xml-properties> - <xml-root-element name="customers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.openecomp.org.v10.Customer" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Customer"> - <xml-root-element name="customer" /> - <java-attributes> - <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." /> - <xml-property name="defaultValue" value="CUST" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.openecomp.org.v10.ServiceSubscriptions" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." /> - <xml-property name="nameProps" value="subscriber-name" /> - <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" /> - <xml-property name="searchable" value="global-customer-id,subscriber-name" /> - <xml-property name="uniqueProps" value="global-customer-id" /> - <xml-property name="container" value="customers" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="ServiceSubscriptions"> - <xml-properties> - <xml-property name="description" value="Collection of objects that group service instances." /> - </xml-properties> - <xml-root-element name="service-subscriptions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.openecomp.org.v10.ServiceSubscription" /> - </java-attributes> - </java-type> - - <java-type name="ServiceSubscription"> - <xml-root-element name="service-subscription" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This property will be deleted from A&AI in the near future. Only stop gap solution." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.openecomp.org.v10.ServiceInstances"> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Object that group service instances." /> - <xml-property name="indexedProps" value="service-type" /> - <xml-property name="dependentOn" value="customer" /> - <xml-property name="container" value="service-subscriptions" /> - <xml-property name="crossEntityReference" value="service-instance,service-type" /> - </xml-properties> - </java-type> - - <java-type name="ServiceInstances"> - <xml-properties> - <xml-property name="description" value="Collection of service instances" /> - </xml-properties> - <xml-root-element name="service-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.openecomp.org.v10.ServiceInstance" /> - </java-attributes> - </java-type> - - <java-type name="ServiceInstance"> - <xml-root-element name="service-instance" /> - <java-attributes> - <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Uniquely identifies this instance of a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store a name assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the total bandwidth to be used for this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL customers will use to access the vHN Portal." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v10.Metadata" /> - <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.openecomp.org.v10.AllottedResources" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Instance of a service" /> - <xml-property name="indexedProps" value="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status" /> - <xml-property name="nameProps" value="service-instance-name" /> - <xml-property name="searchable" value="service-instance-id,service-instance-name" /> - <xml-property name="uniqueProps" value="service-instance-id" /> - <xml-property name="dependentOn" value="service-subscription" /> - <xml-property name="container" value="service-instances" /> - </xml-properties> - </java-type> - - <java-type name="ServiceDesignAndCreation"> - <xml-properties> - <xml-property name="description" value="Namespace for objects managed by ASDC" /> - </xml-properties> - <xml-root-element name="service-design-and-creation" /> - <java-attributes> - <xml-element java-attribute="vnfImages" name="vnf-images" type="inventory.aai.openecomp.org.v10.VnfImages" /> - <xml-element java-attribute="services" name="services" type="inventory.aai.openecomp.org.v10.Services" /> - <xml-element java-attribute="serviceCapabilities" name="service-capabilities" type="inventory.aai.openecomp.org.v10.ServiceCapabilities" /> - <xml-element java-attribute="models" name="models" type="inventory.aai.openecomp.org.v10.Models" /> - <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.openecomp.org.v10.NamedQueries" /> - </java-attributes> - </java-type> - - <java-type name="VnfImages"> - <xml-properties> - <xml-property name="description" value="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - </xml-properties> - <xml-root-element name="vnf-images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfImage" name="vnf-image" type="inventory.aai.openecomp.org.v10.VnfImage" /> - </java-attributes> - </java-type> - - <java-type name="VnfImage"> - <xml-root-element name="vnf-image" /> - <java-attributes> - <xml-element java-attribute="vnfImageUuid" name="vnf-image-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of this asset" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - <xml-property name="indexedProps" value="application,vnf-image-uuid,application-vendor,application-version" /> - <xml-property name="uniqueProps" value="vnf-image-uuid" /> - <xml-property name="container" value="vnf-images" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Services"> - <xml-properties> - <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC." /> - </xml-properties> - <xml-root-element name="services" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.openecomp.org.v10.Service" /> - </java-attributes> - </java-type> - - <java-type name="Service"> - <xml-root-element name="service" /> - <java-attributes> - <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description of the service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services." /> - <xml-property name="indexedProps" value="service-description,service-id" /> - <xml-property name="container" value="services" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="ServiceCapabilities"> - <xml-properties> - <xml-property name="description" value="Collection of service capabilities." /> - </xml-properties> - <xml-root-element name="service-capabilities" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceCapability" name="service-capability" type="inventory.aai.openecomp.org.v10.ServiceCapability" /> - </java-attributes> - </java-type> - - <java-type name="ServiceCapability"> - <xml-root-element name="service-capability" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this." /> - <xml-property name="indexedProps" value="service-type,vnf-type" /> - <xml-property name="container" value="service-capabilities" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Network"> - <xml-properties> - <xml-property name="description" value="Namespace for network inventory resources." /> - </xml-properties> - <xml-root-element name="network" /> - <java-attributes> - <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.openecomp.org.v10.LogicalLinks" /> - <xml-element java-attribute="sitePairSets" name="site-pair-sets" type="inventory.aai.openecomp.org.v10.SitePairSets" /> - <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.openecomp.org.v10.VpnBindings" /> - <xml-element java-attribute="vplsPes" name="vpls-pes" type="inventory.aai.openecomp.org.v10.VplsPes" /> - <xml-element java-attribute="multicastConfigurations" name="multicast-configurations" type="inventory.aai.openecomp.org.v10.MulticastConfigurations" /> - <xml-element java-attribute="vces" name="vces" type="inventory.aai.openecomp.org.v10.Vces" /> - <xml-element java-attribute="vpes" name="vpes" type="inventory.aai.openecomp.org.v10.Vpes" /> - <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.openecomp.org.v10.Vnfcs" /> - <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.openecomp.org.v10.L3Networks" /> - <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.openecomp.org.v10.NetworkPolicies" /> - <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.openecomp.org.v10.GenericVnfs" /> - <xml-element java-attribute="lagLinks" name="lag-links" type="inventory.aai.openecomp.org.v10.LagLinks" /> - <xml-element java-attribute="newvces" name="newvces" type="inventory.aai.openecomp.org.v10.Newvces" /> - <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.openecomp.org.v10.Pnfs" /> - <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.openecomp.org.v10.PhysicalLinks" /> - <xml-element java-attribute="ipsecConfigurations" name="ipsec-configurations" type="inventory.aai.openecomp.org.v10.IpsecConfigurations" /> - <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.openecomp.org.v10.RouteTableReferences" /> - <xml-element java-attribute="instanceGroups" name="instance-groups" type="inventory.aai.openecomp.org.v10.InstanceGroups" /> - <xml-element java-attribute="zones" name="zones" type="inventory.aai.openecomp.org.v10.Zones" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of logical connections" /> - </xml-properties> - <xml-root-element name="logical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.openecomp.org.v10.LogicalLink" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLink"> - <xml-root-element name="logical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of logical link, e.g., evc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4, v6, or ds for dual stack" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="For example, static or BGP" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of operational status of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of the network use of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkId" name="link-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the logical-link, SDNC generates this." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Reason for this entity, role it is playing" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" /> - <xml-property name="indexedProps" value="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose" /> - <xml-property name="uniqueProps" value="link-id" /> - <xml-property name="container" value="logical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name" /> - </xml-properties> - </java-type> - - <java-type name="SitePairSets"> - <xml-properties> - <xml-property name="description" value="Collection of sets of instances for probes related to generic-vnf" /> - </xml-properties> - <xml-root-element name="site-pair-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePairSet" name="site-pair-set" type="inventory.aai.openecomp.org.v10.SitePairSet" /> - </java-attributes> - </java-type> - - <java-type name="SitePairSet"> - <xml-root-element name="site-pair-set" /> - <java-attributes> - <xml-element java-attribute="sitePairSetId" name="site-pair-set-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of site pair set." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingInstances" name="routing-instances" type="inventory.aai.openecomp.org.v10.RoutingInstances" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Set of instances for probes used to measure service level agreements" /> - <xml-property name="indexedProps" value="site-pair-set-id" /> - <xml-property name="uniqueProps" value="site-pair-set-id" /> - <xml-property name="container" value="site-pair-sets" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="RoutingInstances"> - <xml-properties> - <xml-property name="description" value="set of probes related to generic-vnf routing instance" /> - </xml-properties> - <xml-root-element name="routing-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routingInstance" name="routing-instance" type="inventory.aai.openecomp.org.v10.RoutingInstance" /> - </java-attributes> - </java-type> - - <java-type name="RoutingInstance"> - <xml-root-element name="routing-instance" /> - <java-attributes> - <xml-element java-attribute="routingInstanceId" name="routing-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of routing instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpmOwner" name="rpm-owner" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rpm owner" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sitePairs" name="site-pairs" type="inventory.aai.openecomp.org.v10.SitePairs" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="routing-instance-id" /> - <xml-property name="uniqueProps" value="routing-instance-id" /> - <xml-property name="dependentOn" value="site-pair-set" /> - <xml-property name="container" value="routing-instances" /> - </xml-properties> - </java-type> - - <java-type name="SitePairs"> - <xml-properties> - <xml-property name="description" value="probe within a set" /> - </xml-properties> - <xml-root-element name="site-pairs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePair" name="site-pair" type="inventory.aai.openecomp.org.v10.SitePair" /> - </java-attributes> - </java-type> - - <java-type name="SitePair"> - <xml-root-element name="site-pair" /> - <java-attributes> - <xml-element java-attribute="sitePairId" name="site-pair-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceIp" name="source-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationIp" name="destination-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version, v4, v6" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationHostname" name="destination-hostname" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Hostname of the destination equipment to which SLAs are measured against." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationEquipType" name="destination-equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The type of destinatination equipment. Could be Router, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="classesOfService" name="classes-of-service" type="inventory.aai.openecomp.org.v10.ClassesOfService" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="site-pair-id" /> - <xml-property name="uniqueProps" value="site-pair-id" /> - <xml-property name="dependentOn" value="routing-instance" /> - <xml-property name="container" value="site-pairs" /> - </xml-properties> - </java-type> - - <java-type name="ClassesOfService"> - <xml-properties> - <xml-property name="description" value="class-of-service of probe" /> - </xml-properties> - <xml-root-element name="classes-of-service" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="classOfService" name="class-of-service" type="inventory.aai.openecomp.org.v10.ClassOfService" /> - </java-attributes> - </java-type> - - <java-type name="ClassOfService"> - <xml-root-element name="class-of-service" /> - <java-attributes> - <xml-element java-attribute="cos" name="cos" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeId" name="probe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeType" name="probe-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="cos" /> - <xml-property name="dependentOn" value="site-pair" /> - <xml-property name="container" value="classes-of-service" /> - </xml-properties> - </java-type> - - <java-type name="VpnBindings"> - <xml-root-element name="vpn-bindings" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpnBinding" name="vpn-binding" type="inventory.aai.openecomp.org.v10.VpnBinding" /> - </java-attributes> - </java-type> - - <java-type name="VpnBinding"> - <xml-root-element name="vpn-binding" /> - <java-attributes> - <xml-element java-attribute="vpnId" name="vpn-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="VPN ID, globally unique within A&AI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnName" name="vpn-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="VPN Name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnPlatform" name="vpn-platform" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the platform associated with the VPN example AVPN, Mobility" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnType" name="vpn-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the vpn, should be taken from enumerated/valid values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeDistinguisher" name="route-distinguisher" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTargets" name="route-targets" type="inventory.aai.openecomp.org.v10.RouteTargets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList"> - <xml-properties> - <xml-property name="description" value="l3-networks relate to vpn-bindings" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPN binding" /> - <xml-property name="nameProps" value="vpn-name,vpn-type" /> - <xml-property name="indexedProps" value="vpn-name,vpn-id,vpn-type" /> - <xml-property name="searchable" value="vpn-id,vpn-name" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="container" value="vpn-bindings" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="VplsPes"> - <xml-properties> - <xml-property name="description" value="Collection of VPLS Provider Edge routers" /> - </xml-properties> - <xml-root-element name="vpls-pes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vplsPe" name="vpls-pe" type="inventory.aai.openecomp.org.v10.VplsPe" /> - </java-attributes> - </java-type> - - <java-type name="VplsPe"> - <xml-root-element name="vpls-pe" /> - <java-attributes> - <xml-element java-attribute="equipmentName" name="equipment-name" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPLS-PE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v10.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v10.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPLS Provider Edge routers." /> - <xml-property name="indexedProps" value="prov-status,equipment-name" /> - <xml-property name="container" value="vpls-pes" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="MulticastConfigurations"> - <xml-properties> - <xml-property name="description" value="multicast configuration of generic-vnf ip-address" /> - </xml-properties> - <xml-root-element name="multicast-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="multicastConfiguration" name="multicast-configuration" type="inventory.aai.openecomp.org.v10.MulticastConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="MulticastConfiguration"> - <xml-root-element name="multicast-configuration" /> - <java-attributes> - <xml-element java-attribute="multicastConfigurationId" name="multicast-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of multicast configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="multicastProtocol" name="multicast-protocol" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="protocol of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpType" name="rp-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rp type of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="multicast-configuration-id" /> - <xml-property name="uniqueProps" value="multicast-configuration-id" /> - <xml-property name="container" value="multicast-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Vces"> - <xml-properties> - <xml-property name="description" value="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated." /> - </xml-properties> - <xml-root-element name="vces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vce" name="vce" type="inventory.aai.openecomp.org.v10.Vce" /> - </java-attributes> - </java-type> - - <java-type name="Vce"> - <xml-root-element name="vce" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network role being played by this VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpeId" name="vpe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID of VPE connected to this VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6VceWanAddress" name="v6-vce-wan-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid v6 IP address for the WAN Link on this router. Implied length of /64." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - see child relationships" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroups" name="port-groups" type="inventory.aai.openecomp.org.v10.PortGroups" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.openecomp.org.v10.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.openecomp.org.v10.Entitlements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vces" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="PortGroups"> - <xml-root-element name="port-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="portGroup" name="port-group" type="inventory.aai.openecomp.org.v10.PortGroup" /> - </java-attributes> - </java-type> - - <java-type name="PortGroup"> - <xml-root-element name="port-group" /> - <java-attributes> - <xml-element java-attribute="interfaceId" name="interface-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkName" name="neutron-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network name of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupId" name="port-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID for port group in vmware" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupName" name="port-group-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Likely to duplicate value of neutron network name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="switchName" name="switch-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="DVS or standard switch name (should be non-null for port groups associated with DVS)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTags" name="cvlan-tags" type="inventory.aai.openecomp.org.v10.CvlanTags" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Used to capture the network interfaces of this VCE" /> - <xml-property name="nameProps" value="port-group-name" /> - <xml-property name="indexedProps" value="port-group-id,heat-stack-id,interface-id,interface-name,switch-name" /> - <xml-property name="dependentOn" value="vce" /> - <xml-property name="container" value="port-groups" /> - </xml-properties> - </java-type> - - <java-type name="CvlanTags"> - <xml-root-element name="cvlan-tags" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cvlanTagEntry" name="cvlan-tag-entry" type="inventory.aai.openecomp.org.v10.CvlanTagEntry" /> - </java-attributes> - </java-type> - - <java-type name="CvlanTagEntry"> - <xml-root-element name="cvlan-tag-entry" /> - <java-attributes> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="See mis-na-virtualization-platform.yang" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="dependentOn" value="port-group" /> - <xml-property name="indexedProps" value="cvlan-tag" /> - <xml-property name="container" value="cvlan-tags" /> - </xml-properties> - </java-type> - - <java-type name="Vpes"> - <xml-properties> - <xml-property name="description" value="Virtual provider edge router. In 1504, A&AI will populate this object through an M&P and tool provided to operations." /> - </xml-properties> - <xml-root-element name="vpes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpe" name="vpe" type="inventory.aai.openecomp.org.v10.Vpe" /> - </java-attributes> - </java-type> - - <java-type name="Vpe"> - <xml-root-element name="vpe" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use. See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Prefix length for oam-address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gateway address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v4Loopback0IpAddress" name="v4-loopback0-ip-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether vpe access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v10.LagInterfaces" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.openecomp.org.v10.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.openecomp.org.v10.Entitlements" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Relationship-list must include related to info for complex." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vpes" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="Vnfcs"> - <xml-properties> - <xml-property name="description" value="virtual network components associated with a vserver from application controller." /> - </xml-properties> - <xml-root-element name="vnfcs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.openecomp.org.v10.Vnfc" /> - </java-attributes> - </java-type> - - <java-type name="Vnfc"> - <xml-root-element name="vnfc" /> - <java-attributes> - <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vnfc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcFunctionCode" name="vnfc-function-code" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="function code" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcType" name="vnfc-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="prov status of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Oam V4 vip address of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group notation of VNFC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation" /> - <xml-property name="searchable" value="vnfc-name" /> - <xml-property name="container" value="vnfcs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="L3Networks"> - <xml-root-element name="l3-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.openecomp.org.v10.L3Network" /> - </java-attributes> - </java-type> - - <java-type name="L3Network"> - <xml-root-element name="l3-network" /> - <java-attributes> - <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Network ID, should be uuid. Unique across A&AI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network, governed by some naming convention.." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkType" name="network-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the network - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role the network plans - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network technology - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBoundToVpn" name="is-bound-to-vpn" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Set to true if bound to VPN" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="network role instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the physical network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a provider network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a shared network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is an external network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.openecomp.org.v10.Subnets" /> - <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.openecomp.org.v10.CtagAssignments" /> - <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.openecomp.org.v10.SegmentationAssignments" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" > - <xml-properties> - <xml-property name="description" value="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Generic network definition" /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role" /> - <xml-property name="searchable" value="network-id,network-name" /> - <xml-property name="uniqueProps" value="network-id" /> - <xml-property name="container" value="l3-networks" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="NetworkPolicies"> - <xml-root-element name="network-policies" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkPolicy" name="network-policy" type="inventory.aai.openecomp.org.v10.NetworkPolicy" /> - </java-attributes> - </java-type> - <java-type name="NetworkPolicy"> - <xml-root-element name="network-policy" /> - <java-attributes> - <xml-element java-attribute="networkPolicyId" name="network-policy-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID representing unique key to this instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkPolicyFqdn" name="network-policy-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the policy" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID for the openStack Heat instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="nameProps" value="network-policy-fqdn" /> - <xml-property name="indexedProps" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="searchable" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="uniqueProps" value="network-policy-id" /> - <xml-property name="container" value="network-policies" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="CtagAssignments"> - <xml-root-element name="ctag-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.openecomp.org.v10.CtagAssignment" /> - </java-attributes> - </java-type> - - <java-type name="CtagAssignment"> - <xml-root-element name="ctag-assignment" /> - <java-attributes> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="id." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vlan-id-inner" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="ctag-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Subnets"> - <xml-root-element name="subnets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.openecomp.org.v10.Subnet" /> - </java-attributes> - </java-type> - - <java-type name="Subnet"> - <xml-root-element name="subnet" /> - <java-attributes> - <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Subnet ID, should be UUID." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the subnet." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of this subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="gateway ip address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="network start address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="cidr mask" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="dhcpEnabled" name="dhcp-enabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="dhcp enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the start address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the last address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="subnet-id,subnet-name" /> - <xml-property name="nameProps" value="subnet-name" /> - <xml-property name="uniqueProps" value="subnet-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="subnets" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnfs"> - <xml-properties> - <xml-property name="description" value="Collection of VNFs" /> - </xml-properties> - <xml-root-element name="generic-vnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.openecomp.org.v10.GenericVnf" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnf"> - <xml-root-element name="generic-vnf" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - <xml-property name="suggestibleOnSearch" value="true"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, used by MSO." /> - <xml-property name="suggestibleOnSearch" value="true"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by company or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 Loopback address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 management address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether generic-vnf access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementAssignmentGroupUuid" name="entitlement-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the specific entitlement resource. OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseAssignmentGroupUuid" name="license-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the license assignment group. OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKeyUuid" name="license-key-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the actual license resource. OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="represents sub zone of the rr plane" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfType" name="nf-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Generic description of the type of NF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfFunction" name="nf-function" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="English description of Network function that the specific VNF deployment is providing" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="role in the network that this model will be providing" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfNamingCode" name="nf-naming-code" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="string assigned to this model used for naming purposes" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v10.LagInterfaces" /> - <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.openecomp.org.v10.VfModules" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.openecomp.org.v10.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.openecomp.org.v10.Entitlements" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="General purpose VNF" /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="generic-vnfs" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - <xml-property name="containsSuggestibleProps" value="true"/> - <xml-property name="suggestionAliases" value="VNFs"/> - </xml-properties> - </java-type> - - <java-type name="VfModules"> - <xml-properties> - <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs" /> - </xml-properties> - <xml-root-element name="vf-modules" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.openecomp.org.v10.VfModule" /> - </java-attributes> - </java-type> - - <java-type name="VfModule"> - <xml-root-element name="vf-module" /> - <java-attributes> - <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vf-module." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vf-module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBaseVfModule" name="is-base-vf-module" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is base vf module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the Contrail unique ID for a service-instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="moduleIndex" name="module-index" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="a deployment unit of VNFCs" /> - <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn" /> - <xml-property name="searchable" value="vf-module-id,vf-module-name" /> - <xml-property name="dependentOn" value="generic-vnf" /> - <xml-property name="container" value="vf-modules" /> - </xml-properties> - </java-type> - - - <java-type name="LagLinks"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregation connections" /> - </xml-properties> - <xml-root-element name="lag-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagLink" name="lag-link" type="inventory.aai.openecomp.org.v10.LagLink" /> - </java-attributes> - </java-type> - - <java-type name="LagLink"> - <xml-root-element name="lag-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Alphabetical concatenation of lag-interface names" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="LAG links can connect lag-interfaces" /> - <xml-property name="indexedProps" value="link-name" /> - <xml-property name="container" value="lag-links" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Newvces"> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - </xml-properties> - <xml-root-element name="newvces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="newvce" name="newvce" type="inventory.aai.openecomp.org.v10.Newvce" /> - </java-attributes> - </java-type> - - <java-type name="Newvce"> - <xml-root-element name="newvce" /> - <java-attributes> - <xml-element java-attribute="vnfId2" name="vnf-id2" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF, can't use same attribute name right now until we promote this new object" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v10.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2" /> - <xml-property name="searchable" value="vnf-id2,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id2" /> - <xml-property name="container" value="newvces" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Pnfs"> - <xml-properties> - <xml-property name="description" value="Collection of Physical Network Functions." /> - </xml-properties> - <xml-root-element name="pnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.openecomp.org.v10.Pnf" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Pnf"> - <xml-root-element name="pnf" /> - <java-attributes> - <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="source of name2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id of pnf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by company or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number of the device" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 OAM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nf Role is the role performed by this instance in the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v10.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v10.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="PNF represents a physical network function. typically equipment used in the D1 world." /> - <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status" /> - <xml-property name="searchable" value="pnf-name" /> - <xml-property name="uniqueProps" value="pnf-name" /> - <xml-property name="container" value="pnfs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - </xml-properties> - <xml-root-element name="physical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.openecomp.org.v10.PhysicalLink" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLink"> - <xml-root-element name="physical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit it" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Dual access mode (e.g., primary, secondary" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="To provide information on who manages this circuit. A&AI or 3rd party transport provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the service Provider on this link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - <xml-property name="indexedProps" value="circuit-id,link-name" /> - <xml-property name="alternateKeys1" value="circuit-id" /> - <xml-property name="container" value="physical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name,circuit-id" /> - </xml-properties> - </java-type> - - <java-type name="VigServers"> - <xml-root-element name="vig-servers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vigServer" name="vig-server" type="inventory.aai.openecomp.org.v10.VigServer" /> - </java-attributes> - </java-type> - - <java-type name="VigServer"> - <xml-root-element name="vig-server" /> - <java-attributes> - <xml-element java-attribute="vigAddressType" name="vig-address-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="indicates whether the VIG is for AVPN or INTERNET" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV4Vig" name="ipaddress-v4-vig" type="java.lang.String" > - <xml-properties> - <xml-property name="description" value="v4 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV6Vig" name="ipaddress-v6-vig" type="java.lang.String" > - <xml-properties> - <xml-property name="description" value="v6 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607" /> - <xml-property name="indexedProps" value="vig-address-type" /> - <xml-property name="dependentOn" value="ipsec-configuration" /> - <xml-property name="container" value="vig-servers" /> - </xml-properties> - </java-type> - - <java-type name="IpsecConfigurations"> - <xml-root-element name="ipsec-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ipsecConfiguration" name="ipsec-configuration" type="inventory.aai.openecomp.org.v10.IpsecConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="IpsecConfiguration"> - <xml-root-element name="ipsec-configuration" /> - <java-attributes> - <xml-element java-attribute="ipsecConfigurationId" name="ipsec-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of this configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedVigAddressType" name="requested-vig-address-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicate the type of VIG server like AVPN, INTERNET, BOTH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedEncryptionStrength" name="requested-encryption-strength" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedDmzType" name="requested-dmz-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="can offer a shared DMZ or a DMZ specific to a customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sharedDmzNetworkAddress" name="shared-dmz-network-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network address of shared DMZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedCustomerName" name="requested-customer-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="If the DMZ is a custom DMZ, this field will indicate the customer information" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikeVersion" name="ike-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="can be 1 or 2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Authentication" name="ikev1-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contains values like md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Encryption" name="ikev1-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1DhGroup" name="ikev1-dh-group" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmGroupId" name="ikev1-am-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name defined in VIG for clients using aggressive mode" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmPassword" name="ikev1-am-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="pre-shared key for the above group name " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1SaLifetime" name="ikev1-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Lifetime for IKEv1 SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecAuthentication" name="ipsec-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecEncryption" name="ipsec-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecSaLifetime" name="ipsec-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Life time for IPSec SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecPfs" name="ipsec-pfs" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="enable PFS or not" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserId" name="xauth-userid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="user ID for xAuth, sm-user,nmteHostName" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserPassword" name="xauth-user-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted using the Juniper $9$ algorithm" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdInterval" name="dpd-interval" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The time between DPD probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdFrequency" name="dpd-frequency" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Maximum number of DPD before claiming the tunnel is down" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - <xml-element java-attribute="vigServers" name="vig-servers" type="inventory.aai.openecomp.org.v10.VigServers" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C" /> - <xml-property name="indexedProps" value="ipsec-configuration-id" /> - <xml-property name="uniqueProps" value="ipsec-configuration-id" /> - <xml-property name="container" value="ipsec-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="NotificationEvent"> - <xml-root-element name="notification-event" /> - <java-attributes> - <xml-element java-attribute="cambriaPartition" name="cambria.partition" type="java.lang.String" /> - <xml-element java-attribute="eventHeader" name="event-header" type="inventory.aai.openecomp.org.v10.NotificationEventHeader" /> - <xml-any-element java-attribute="entity" /> - </java-attributes> - </java-type> - <java-type name="NotificationEventHeader"> - <xml-root-element name="notification-event-header" /> - <java-attributes> - <xml-element java-attribute="id" name="id" type="java.lang.String" /> - <xml-element java-attribute="timestamp" name="timestamp" type="java.lang.String" /> - <xml-element java-attribute="sourceName" name="source-name" type="java.lang.String" /> - <xml-element java-attribute="domain" name="domain" type="java.lang.String" /> - <xml-element java-attribute="sequenceNumber" name="sequence-number" type="java.lang.String" /> - <xml-element java-attribute="severity" name="severity" type="java.lang.String" /> - <xml-element java-attribute="eventType" name="event-type" type="java.lang.String" /> - <xml-element java-attribute="version" name="version" type="java.lang.String" /> - <xml-element java-attribute="action" name="action" type="java.lang.String" /> - <xml-element java-attribute="entityType" name="entity-type" type="java.lang.String" /> - <xml-element java-attribute="topEntityType" name="top-entity-type" type="java.lang.String" /> - <xml-element java-attribute="entityLink" name="entity-link" type="java.lang.String" /> - <xml-element java-attribute="status" name="status" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="AaiInternal"> - <xml-root-element name="aai-internal" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="reservedPropNames" name="reserved-prop-names" type="inventory.aai.openecomp.org.v10.ReservedPropNames" /> - <xml-element container-type="java.util.ArrayList" java-attribute="edgePropNames" name="edge-prop-names" type="inventory.aai.openecomp.org.v10.EdgePropNames" /> - </java-attributes> - </java-type> - <java-type name="ReservedPropNames"> - <xml-properties> - <xml-property name="description" value="Internal map to define some reserved properties of a vertex" /> - <xml-property name="uniqueProps" value="aai-unique-key" /> - <xml-property name="indexedProps" value="aai-unique-key,source-of-truth,aai-node-type,aai-uri" /> - </xml-properties> - <xml-root-element name="reserved-prop-names" /> - <java-attributes> - <xml-element java-attribute="lastModSourceOfTruth" name="last-mod-source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiNodeType" name="aai-node-type" type="java.lang.String" /> - <xml-element java-attribute="aaiCreatedTs" name="aai-created-ts" type="java.lang.Long" /> - <xml-element java-attribute="aaiUniqueKey" name="aai-unique-key" type="java.lang.String" /> - <xml-element java-attribute="aaiLastModTs" name="aai-last-mod-ts" type="java.lang.Long" /> - <xml-element java-attribute="sourceOfTruth" name="source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiUri" name="aai-uri" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="EdgePropNames"> - <!-- NOTE that the names of these properties are not consistent and are in mixed case and hyphen case for now --> - <xml-properties> - <xml-property name="description" value="Internal map to define the properties of an edge and interpret the map EdgeRules" /> - <xml-property name="edgeInfo" value="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV" /> - </xml-properties> - <xml-root-element name="edge-prop-names" /> - <java-attributes> - <xml-element java-attribute="edgeLabel" name="edgeLabel" type="java.lang.String" /> - <xml-element java-attribute="direction" name="direction" type="java.lang.String" /> - <xml-element java-attribute="multiplicityRule" name="multiplicityRule" type="java.lang.String" /> - <xml-element java-attribute="isParent" name="isParent" type="java.lang.Boolean" /> - <xml-element java-attribute="usesResource" name="usesResource" type="java.lang.Boolean" /> - <xml-element java-attribute="hasDelTarget" name="hasDelTarget" type="java.lang.Boolean" /> - <xml-element java-attribute="SVC-INFRA" name="SVC-INFRA" type="java.lang.Boolean" /> - <xml-element java-attribute="SVC-INFRA-REV" name="SVC-INFRA-REV" type="java.lang.Boolean" /> - </java-attributes> - </java-type> - - <java-type name="Models"> - <xml-properties> - <xml-property name="description" value="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models" /> - </xml-properties> - <xml-root-element name="models" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.openecomp.org.v10.Model" /> - </java-attributes> - </java-type> - - <java-type name="Model"> - <xml-root-element name="model" /> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version" /> - <xml-property name="nameProps" value="model-type" /> - <xml-property name="indexedProps" value="model-invariant-id,model-type" /> - <xml-property name="uniqueProps" value="model-invariant-id" /> - <xml-property name="container" value="models" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.openecomp.org.v10.ModelVers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - - <java-type name="ModelVers"> - <xml-root-element name="model-vers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelVer" name="model-ver" type="inventory.aai.openecomp.org.v10.ModelVer" /> - </java-attributes> - </java-type> - - <java-type name="ModelVer"> - <xml-root-element name="model-ver" /> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models" /> - <xml-property name="nameProps" value="model-name" /> - <xml-property name="indexedProps" value="model-version-id,model-name,model-version" /> - <xml-property name="uniqueProps" value="model-version-id" /> - <xml-property name="container" value="model-vers" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelVersionId" name="model-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v10.ModelElements" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v10.Metadata" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelElements"> - <xml-root-element name="model-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.openecomp.org.v10.ModelElement" /> - </java-attributes> - </java-type> - - <java-type name="ModelElement"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model." /> - <xml-property name="uniqueProps" value="model-element-uuid" /> - <xml-property name="indexedProps" value="model-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-elements" /> - </xml-properties> - <xml-root-element name="model-element" /> - <java-attributes> - <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="How many of this type of element are required/allowed" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-points" type="java.lang.String" > - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v10.ModelElements"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.openecomp.org.v10.ModelConstraints"> - <xml-properties> - <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraints"> - <xml-root-element name="model-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.openecomp.org.v10.ModelConstraint" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraint"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="model-constraint-uuid" /> - <xml-property name="indexedProps" value="model-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-constraints" /> - </xml-properties> - <xml-root-element name="model-constraint" /> - <java-attributes> - <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String" /> - <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.openecomp.org.v10.ConstrainedElementSets" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSets"> - <xml-root-element name="constrained-element-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.openecomp.org.v10.ConstrainedElementSet" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="constrained-element-set-uuid" /> - <xml-property name="indexedProps" value="constrained-element-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="constrained-element-sets" /> - </xml-properties> - <xml-root-element name="constrained-element-set" /> - <java-attributes> - <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.openecomp.org.v10.ElementChoiceSets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSets"> - <xml-root-element name="element-choice-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.openecomp.org.v10.ElementChoiceSet" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="element-choice-set-uuid" /> - <xml-property name="indexedProps" value="element-choice-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="element-choice-sets" /> - </xml-properties> - <xml-root-element name="element-choice-set" /> - <java-attributes> - <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v10.ModelElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueries"> - <xml-root-element name="named-queries" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.openecomp.org.v10.NamedQuery" /> - </java-attributes> - </java-type> - - <java-type name="NamedQuery"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="nameProps" value="named-query-name" /> - <xml-property name="uniqueProps" value="named-query-uuid" /> - <xml-property name="indexedProps" value="named-query-uuid,named-query-name" /> - <xml-property name="container" value="named-queries" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="named-query" /> - <java-attributes> - <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String" > - <xml-element-wrapper name="required-input-params" /> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.openecomp.org.v10.NamedQueryElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElements"> - <xml-root-element name="named-query-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.openecomp.org.v10.NamedQueryElement" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElement"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="named-query-element-uuid" /> - <xml-property name="indexedProps" value="named-query-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="named-query-elements" /> - </xml-properties> - <xml-root-element name="named-query-element" /> - <java-attributes> - <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String" /> - <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.openecomp.org.v10.NamedQueryElements" /> - <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.openecomp.org.v10.RelatedLookups" /> - <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.openecomp.org.v10.PropertyConstraints" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookups"> - <xml-root-element name="related-lookups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.openecomp.org.v10.RelatedLookup" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookup"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="related-lookup-uuid" /> - <xml-property name="indexedProps" value="related-lookup-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="related-lookups" /> - </xml-properties> - <xml-root-element name="related-lookup" /> - <java-attributes> - <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraints"> - <xml-root-element name="property-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.openecomp.org.v10.PropertyConstraint" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraint"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="property-constraint-uuid" /> - <xml-property name="indexedProps" value="property-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="property-constraints" /> - </xml-properties> - <xml-root-element name="property-constraint" /> - <java-attributes> - <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="propertyName" name="property-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ModelAndNamedQuerySearch"> - <xml-properties> - <xml-property name="description" value="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="model-and-named-query-search" /> - <java-attributes> - <xml-element java-attribute="queryParameters" name="query-parameters" type="inventory.aai.openecomp.org.v10.QueryParameters" /> - <xml-element java-attribute="instanceFilters" name="instance-filters" type="inventory.aai.openecomp.org.v10.InstanceFilters" /> - <xml-element java-attribute="secondaryFilts" name="secondary-filts" type="inventory.aai.openecomp.org.v10.SecondaryFilts" /> - <xml-element java-attribute="topNodeType" name="top-node-type" type="java.lang.String" /> - <xml-element java-attribute="secondaryFilterCutPoint" name="secondary-filter-cut-point" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="QueryParameters"> - <xml-properties> - <xml-property name="description" value="QueryParameters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="query-parameters" /> - <java-attributes> - <xml-element java-attribute="namedQuery" name="named-query" type="inventory.aai.openecomp.org.v10.NamedQuery" /> - <xml-element java-attribute="model" name="model" type="inventory.aai.openecomp.org.v10.OverloadedModel" /> - </java-attributes> - </java-type> - - <java-type name="OverloadedModel"> - <xml-root-element name="overloaded-model" /> - <xml-properties> - <xml-property name="description" value="Allows for legacy POST of old-style and new-style models" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelNameVersionId" name="model-name-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelId" name="model-id" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Invariant unique ID which does not change from version to version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.openecomp.org.v10.ModelVers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilters"> - <xml-properties> - <xml-property name="description" value="InstanceFilters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="instance-filters" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceFilter" name="instance-filter" type="inventory.aai.openecomp.org.v10.InstanceFilter" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilter"> - <xml-properties> - <xml-property name="description" value="InstanceFilter for performing a named-query or model query" /> - <xml-property name="container" value="instance-filters" /> - </xml-properties> - <xml-root-element name="instance-filter" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilts"> - <xml-properties> - <xml-property name="description" value="SecondaryFilts for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="secondary-filts" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilt" name="secondary-filt" type="inventory.aai.openecomp.org.v10.SecondaryFilt" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilt"> - <xml-properties> - <xml-property name="description" value="SecondaryFilt for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="secondary-filt" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="Properties"> - <xml-properties> - <xml-property name="description" value="Property holder for query properties or instance properties" /> - </xml-properties> - <xml-root-element name="properties" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ResponseList"> - <xml-properties> - <xml-property name="description" value="Response container for the results of a named-query or model query" /> - </xml-properties> - <xml-root-element name="response-list" /> - <java-attributes> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.openecomp.org.v10.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItems"> - <xml-properties> - <xml-property name="description" value="Container for inventory items in response list" /> - <xml-property name="container" value="response-list" /> - </xml-properties> - <xml-root-element name="inventory-response-items" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryResponseItem" name="inventory-response-item" type="inventory.aai.openecomp.org.v10.InventoryResponseItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItem"> - <xml-properties> - <xml-property name="description" value="Inventory item for response list" /> - <xml-property name="container" value="inventory-response-items" /> - </xml-properties> - <xml-root-element name="inventory-response-item" /> - <java-attributes> - <xml-element java-attribute="modelName" name="model-name" type="java.lang.String" /> - <xml-any-element java-attribute="item" /> - <xml-element java-attribute="extraProperties" name="extra-properties" type="inventory.aai.openecomp.org.v10.ExtraProperties" /> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.openecomp.org.v10.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperties"> - <xml-properties> - <xml-property name="description" value="Extra properties for inventory item for response list" /> - </xml-properties> - <xml-root-element name="extra-properties" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="extraProperty" name="extra-property" type="inventory.aai.openecomp.org.v10.ExtraProperty" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperty"> - <xml-root-element name="extra-property" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-any-element java-attribute="propertyValue" lax="true" name="property-value" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReferences"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="route-table-references" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routeTableReference" name="route-table-reference" type="inventory.aai.openecomp.org.v10.RouteTableReference" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReference"> - <xml-root-element name="route-table-reference" /> - <java-attributes> - <xml-element java-attribute="routeTableReferenceId" name="route-table-reference-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTableReferenceFqdn" name="route-table-reference-fqdn" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="FQDN entry in the route table." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Openstack route table reference." /> - <xml-property name="nameProps" value="route-table-reference-fqdn" /> - <xml-property name="uniqueProps" value="route-table-reference-id" /> - <xml-property name="indexedProps" value="route-table-reference-id,route-table-reference-fqdn" /> - <xml-property name="container" value="route-table-references" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="InstanceGroups"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="instance-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceGroup" name="instance-group" type="inventory.aai.openecomp.org.v10.InstanceGroup" /> - </java-attributes> - </java-type> - - <java-type name="InstanceGroup"> - <xml-root-element name="instance-group" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Instance Group ID, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="description" name="description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Descriptive text to help identify the usage of this instance-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="type" name="type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Only valid value today is lower case ha for high availability" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subType" name="sub-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="General mechanism for grouping instances" /> - <xml-property name="nameProps" value="description" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id,description,type,sub-type" /> - <xml-property name="container" value="instance-groups" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="SegmentationAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack segmentation assignments" /> - </xml-properties> - <xml-root-element name="segmentation-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.openecomp.org.v10.SegmentationAssignment" /> - </java-attributes> - </java-type> - - <java-type name="SegmentationAssignment"> - <xml-root-element name="segmentation-assignment" /> - <java-attributes> - <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack segmentation assignment." /> - <xml-property name="indexedProps" value="segmentation-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="segmentation-assignments" /> - </xml-properties> - </java-type> - - <java-type name="AllottedResources"> - <xml-properties> - <xml-property name="description" value="This object is used to store slices of services being offered" /> - </xml-properties> - <xml-root-element name="allotted-resources" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="allottedResource" name="allotted-resource" type="inventory.aai.openecomp.org.v10.AllottedResource" /> - </java-attributes> - </java-type> - - <java-type name="AllottedResource"> - <xml-root-element name="allotted-resource" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The descriptive information assigned to this allotted resource instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Link back to more information in the controller" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="type" name="type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Generic description of the type of allotted resource." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="role" name="role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="role in the network that this resource will be providing." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.openecomp.org.v10.TunnelXconnects" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Represents a slice or partial piece of a resource that gets separately allotted" /> - <xml-property name="nameProps" value="description" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id,model-invariant-id,model-version-id,type,role" /> - <xml-property name="dependentOn" value="service-instance" /> - <xml-property name="container" value="allotted-resources" /> - <!-- <xml-property name="namespace" value="network" /> --> - </xml-properties> - </java-type> - - <java-type name="TunnelXconnects"> - <xml-properties> - <xml-property name="description" value="This object is used to store the specific tunnel cross connect aspects of an allotted resource" /> - </xml-properties> - <xml-root-element name="tunnel-xconnects" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tunnelXconnect" name="tunnel-xconnect" type="inventory.aai.openecomp.org.v10.TunnelXconnect" /> - </java-attributes> - </java-type> - - <java-type name="TunnelXconnect"> - <xml-root-element name="tunnel-xconnect" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN uplink bandwidth for WAN1" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN downlink bandwidth for WAN1" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN uplink bandwidth for WAN2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN downlink bandwidth for WAN2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id" /> - <xml-property name="dependentOn" value="allotted-resource" /> - <xml-property name="container" value="tunnel-xconnects" /> - <!-- <xml-property name="namespace" value="network" /> --> - </xml-properties> - </java-type> - - <java-type name="Entitlements"> - <xml-properties> - <xml-property name="description" value="Entitlements, keyed by group-uuid and resource-uuid, related to license management" /> - </xml-properties> - <xml-root-element name="entitlements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="entitlement" name="entitlement" type="inventory.aai.openecomp.org.v10.Entitlement" /> - </java-attributes> - </java-type> - - <java-type name="Entitlement"> - <xml-root-element name="entitlement" /> - <java-attributes> - <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID for the entitlement group the resource comes from, should be uuid." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of an entitlement resource. " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Metadata for entitlement group." /> - <xml-property name="indexedProps" value="group-uuid,resource-uuid" /> - <xml-property name="dependentOn" value="generic-vnf,vce,vpe" /> - <xml-property name="container" value="entitlements" /> - </xml-properties> - </java-type> - - - <java-type name="Licenses"> - <xml-properties> - <xml-property name="description" value="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management" /> - </xml-properties> - <xml-root-element name="licenses" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="license" name="license" type="inventory.aai.openecomp.org.v10.License" /> - </java-attributes> - </java-type> - - <java-type name="License"> - <xml-root-element name="license" /> - <java-attributes> - <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID for the license group the resource belongs to, should be uuid." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of a license resource. " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Metadata for license group." /> - <xml-property name="indexedProps" value="group-uuid,resource-uuid" /> - <xml-property name="dependentOn" value="generic-vnf,vce,vpe" /> - <xml-property name="container" value="licenses" /> - </xml-properties> - </java-type> - - <java-type name="Vnf"> - <xml-root-element name="vnf"/> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Abstract vnf class" /> - <xml-property name="indexedProps" value="vnf-id" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="inheritors" value="vce,vpe,generic-vnf" /> - <xml-property name="abstract" value="true" /> - </xml-properties> - </java-type> - - <java-type name="Zones"> - <xml-properties> - <xml-property name="description" value="Collection of zones" /> - </xml-properties> - <xml-root-element name="zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="zone" name="zone" type="inventory.aai.openecomp.org.v10.Zone" /> - </java-attributes> - </java-type> - - <java-type name="Zone"> - <xml-root-element name="zone" /> - <java-attributes> - <xml-element java-attribute="zoneId" name="zone-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Code assigned by AIC to the zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="zoneName" name="zone-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="English name associated with the zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="designType" name="design-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Design of zone [Medium/Large…]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="zoneContext" name="zone-context" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Context of zone [production/test]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="status" name="status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Status of a zone." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A zone is a grouping of assets in a location homing to the same connections into the CBB" /> - <xml-property name="nameProps" value="zone-name" /> - <xml-property name="indexedProps" value="zone-id,design-type,zone-context" /> - <xml-property name="uniqueProps" value="zone-id" /> - <xml-property name="container" value="zones" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="RouteTargets"> - <xml-properties> - <xml-property name="description" value="Collection of route target information" /> - </xml-properties> - <xml-root-element name="route-targets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routeTarget" name="route-target" type="inventory.aai.openecomp.org.v10.RouteTarget" /> - </java-attributes> - </java-type> - <java-type name="RouteTarget"> - <xml-root-element name="route-target" /> - <java-attributes> - <xml-element java-attribute="globalRouteTarget" name="global-route-target" required="true" xml-key="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Number used to identify an RT, globally unique in the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTargetRole" name="route-target-role" required="true" xml-key="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this route target" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v10.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Route target information" /> - <xml-property name="container" value="route-targets" /> - <xml-property name="dependentOn" value="vpn-binding" /> - <xml-property name="canBeLinked" value="true" /> - </xml-properties> - </java-type> - </java-types> -</xml-bindings> diff --git a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v11.xml b/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v11.xml deleted file mode 100644 index ecf163e097..0000000000 --- a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v11.xml +++ /dev/null @@ -1,6307 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- - ============LICENSE_START======================================================= - org.openecomp.aai - ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - ================================================================================ - 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. - ============LICENSE_END========================================================= - --> - -<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v11" xml-mapping-metadata-complete="true"> - <xml-schema element-form-default="QUALIFIED"> - <xml-ns namespace-uri="http://org.openecomp.aai.inventory/v11" /> - </xml-schema> - <java-types> - <java-type name="Inventory"> - <xml-root-element name="inventory" /> - <java-attributes> - <xml-element java-attribute="search" name="search" type="inventory.aai.onap.org.v11.Search" /> - <xml-element java-attribute="actions" name="actions" type="inventory.aai.onap.org.v11.Actions" /> - <xml-element java-attribute="cloudInfrastructure" name="cloud-infrastructure" type="inventory.aai.onap.org.v11.CloudInfrastructure" /> - <xml-element java-attribute="externalSystem" name="external-system" type="inventory.aai.onap.org.v11.ExternalSystem" /> - <xml-element java-attribute="business" name="business" type="inventory.aai.onap.org.v11.Business" /> - <xml-element java-attribute="serviceDesignAndCreation" name="service-design-and-creation" type="inventory.aai.onap.org.v11.ServiceDesignAndCreation" /> - <xml-element java-attribute="network" name="network" type="inventory.aai.onap.org.v11.Network" /> - <xml-element java-attribute="aaiInternal" name="aai-internal" type="inventory.aai.onap.org.v11.AaiInternal" /> - <xml-element java-attribute="nodes" name="nodes" type="inventory.aai.onap.org.v11.Nodes"/> - </java-attributes> - </java-type> - - <java-type name="Nodes"> - <xml-root-element name="nodes" /> - </java-type> - <java-type name="Search"> - <xml-root-element name="search" /> - <java-attributes> - <xml-element java-attribute="edgeTagQueryResult" name="edge-tag-query-result" type="inventory.aai.onap.org.v11.EdgeTagQueryResult" /> - <xml-element java-attribute="edgeTagQueryRequest" name="edge-tag-query-request" type="inventory.aai.onap.org.v11.EdgeTagQueryRequest" /> - <xml-element java-attribute="searchResults" name="search-results" type="inventory.aai.onap.org.v11.SearchResults" /> - <xml-element java-attribute="sdnZoneResponse" name="sdn-zone-response" type="inventory.aai.onap.org.v11.SdnZoneResponse" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryResult"> - <xml-root-element name="edge-tag-query-result" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.onap.org.v11.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="TaggedInventoryItemList"> - <xml-root-element name="tagged-inventory-item-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItem" name="inventory-item" type="inventory.aai.onap.org.v11.InventoryItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItem"> - <xml-root-element name="inventory-item" /> - <java-attributes> - <xml-element java-attribute="inventoryItemType" name="inventory-item-type" type="java.lang.String" /> - <xml-element java-attribute="inventoryItemLink" name="inventory-item-link" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItemData" name="inventory-item-data" type="inventory.aai.onap.org.v11.InventoryItemData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.onap.org.v11.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItemData"> - <xml-root-element name="inventory-item-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryRequest"> - <xml-root-element name="edge-tag-query-request" /> - <java-attributes> - <xml-element java-attribute="edgeTag" name="edge-tag" type="java.lang.String" /> - <xml-element java-attribute="resultDetail" name="result-detail" type="java.lang.String" /> - <xml-element java-attribute="startNodeType" name="start-node-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="startNodeFilter" name="start-node-filter" type="inventory.aai.onap.org.v11.StartNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="includeNodeFilter" name="include-node-filter" type="inventory.aai.onap.org.v11.IncludeNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilter" name="secondary-filter" type="inventory.aai.onap.org.v11.SecondaryFilter" /> - </java-attributes> - </java-type> - - <java-type name="StartNodeFilter"> - <xml-root-element name="start-node-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="IncludeNodeFilter"> - <xml-root-element name="include-node-filter" /> - <java-attributes> - <xml-element java-attribute="includeNodeType" name="include-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilter"> - <xml-root-element name="secondary-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="filterType" name="filter-type" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SearchResults"> - <xml-root-element name="search-results" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="resultData" name="result-data" type="inventory.aai.onap.org.v11.ResultData" /> - </java-attributes> - </java-type> - - <java-type name="ResultData"> - <xml-root-element name="result-data" /> - <java-attributes> - <xml-element java-attribute="resourceType" name="resource-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The specific type of node in the A&AI graph" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceLink" name="resource-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The URL to the specific resource" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="SdnZoneResponse"> - <xml-root-element name="sdn-zone-response" /> - <java-attributes> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.onap.org.v11.OamNetworks" /> - <xml-element container-type="java.util.ArrayList" java-attribute="azAndDvsSwitches" name="az-and-dvs-switches" type="inventory.aai.onap.org.v11.AzAndDvsSwitches" /> - </java-attributes> - </java-type> - - <java-type name="AzAndDvsSwitches"> - <xml-root-element name="az-and-dvs-switches" /> - <java-attributes> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.onap.org.v11.DvsSwitches" /> - <xml-element java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.onap.org.v11.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="Actions"> - <xml-properties> - <xml-property name="description" value="APIs that are more action related than REST (e.g., notify, update)." /> - </xml-properties> - <xml-root-element name="actions" /> - <java-attributes> - <xml-element java-attribute="update" name="update" type="inventory.aai.onap.org.v11.Update" /> - <xml-element java-attribute="notify" name="notify" type="inventory.aai.onap.org.v11.Notify" /> - </java-attributes> - </java-type> - - <java-type name="Update"> - <xml-properties> - <xml-property name="description" value="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team." /> - </xml-properties> - <xml-root-element name="update" /> - <java-attributes> - <xml-element java-attribute="updateNodeType" name="update-node-type" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="updateNodeKey" name="update-node-key" type="inventory.aai.onap.org.v11.UpdateNodeKey" /> - <xml-element java-attribute="updateNodeUri" name="update-node-uri" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="action" name="action" type="inventory.aai.onap.org.v11.Action" /> - </java-attributes> - </java-type> - - <java-type name="Action"> - <xml-root-element name="action" /> - <java-attributes> - <xml-element java-attribute="actionType" name="action-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="actionData" name="action-data" type="inventory.aai.onap.org.v11.ActionData" /> - </java-attributes> - </java-type> - - <java-type name="ActionData"> - <xml-root-element name="action-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="UpdateNodeKey"> - <xml-root-element name="update-node-key" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Notify"> - <xml-root-element name="notify" /> - <java-attributes> - <xml-element java-attribute="eventId" name="event-id" required="true" type="java.lang.String" /> - <xml-element java-attribute="nodeType" name="node-type" type="java.lang.String" /> - <xml-element java-attribute="eventTrigger" name="event-trigger" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="keyData" name="key-data" type="inventory.aai.onap.org.v11.KeyData" /> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="KeyData"> - <xml-root-element name="key-data" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ExternalSystem"> - <xml-properties> - <xml-property name="description" value="Namespace for external system." /> - </xml-properties> - <xml-root-element name="external-system" /> - <java-attributes> - <xml-element java-attribute="esrEmsList" name="esr-ems-list" type="inventory.aai.onap.org.v11.EsrEmsList" /> - <xml-element java-attribute="esrVnfmList" name="esr-vnfm-list" type="inventory.aai.onap.org.v11.EsrVnfmList" /> - <xml-element java-attribute="esrThirdpartySdncList" name="esr-thirdparty-sdnc-list" type="inventory.aai.onap.org.v11.EsrThirdpartySdncList" /> - </java-attributes> - </java-type> - - <java-type name="EsrEmsList"> - <xml-root-element name="esr-ems-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="esrEms" name="esr-ems" type="inventory.aai.onap.org.v11.EsrEms" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="EsrEms"> - <xml-root-element name="esr-ems" /> - <java-attributes> - <xml-element java-attribute="emsId" name="ems-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of EMS." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="esrSystemInfoList" name="esr-system-info-list" type="inventory.aai.onap.org.v11.EsrSystemInfoList" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persist EMS address information used by EMS driver." /> - <xml-property name="indexedProps" value="ems-id" /> - <xml-property name="searchable" value="ems-id" /> - <xml-property name="container" value="esr-ems-list" /> - <xml-property name="namespace" value="external-system" /> - </xml-properties> - </java-type> - - <java-type name="EsrVnfmList"> - <xml-root-element name="esr-vnfm-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="esrVnfm" name="esr-vnfm" type="inventory.aai.onap.org.v11.EsrVnfm" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="EsrVnfm"> - <xml-root-element name="esr-vnfm" /> - <java-attributes> - <xml-element java-attribute="vnfmId" name="vnfm-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of VNFM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vimId" name="vim-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indecate the VIM to deploy VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="certificateUrl" name="certificate-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="certificate url of VNFM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="esrSystemInfoList" name="esr-system-info-list" type="inventory.aai.onap.org.v11.EsrSystemInfoList" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persist VNFM address information used by VF-C." /> - <xml-property name="indexedProps" value="vnfm-id" /> - <xml-property name="searchable" value="vnfm-id" /> - <xml-property name="container" value="esr-vnfm-list" /> - <xml-property name="namespace" value="external-system" /> - </xml-properties> - </java-type> - - <java-type name="EsrThirdpartySdncList"> - <xml-root-element name="esr-thirdparty-sdnc-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="esrThirdpartySdnc" name="esr-thirdparty-sdnc" type="inventory.aai.onap.org.v11.EsrThirdpartySdnc" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="EsrThirdpartySdnc"> - <xml-root-element name="esr-thirdparty-sdnc" /> - <java-attributes> - <xml-element java-attribute="thirdpartySdncId" name="thirdparty-sdnc-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of SDNC." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="location" name="location" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="used for DC type to indicate the location of SDNC, such as Core or Edge." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="productName" name="product-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="password used to access SDNC server." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="esrSystemInfoList" name="esr-system-info-list" type="inventory.aai.onap.org.v11.EsrSystemInfoList" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persist SDNC address information used by ONAP SDNC." /> - <xml-property name="indexedProps" value="sdnc-id" /> - <xml-property name="searchable" value="sdnc-id" /> - <xml-property name="container" value="esr-thirdparty-sdnc-list" /> - <xml-property name="namespace" value="external-system" /> - </xml-properties> - </java-type> - - <java-type name="EsrSystemInfoList"> - <xml-root-element name="esr-system-info-list" /> - <xml-properties> - <xml-property name="description" value="Collection of persistent block-level external system auth info." /> - </xml-properties> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="esrSystemInfo" name="esr-system-info" type="inventory.aai.onap.org.v11.EsrSystemInfo" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="EsrSystemInfo"> - <xml-root-element name="esr-system-info" /> - <java-attributes> - <xml-element java-attribute="esrSystemInfoId" name="esr-system-info-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of esr system info." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="systemName" name="system-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="name of external system." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="type" name="type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type of external systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vendor" name="vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="vendor of external systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="version" name="version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="version of external systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceUrl" name="service-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="url used to access external systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="userName" name="user-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="username used to access external systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="password" name="password" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="password used to access external systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="systemType" name="system-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="protocol" name="protocol" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="protocol of third party SDNC, for example netconf/snmp." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sslCacert" name="ssl-cacert" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ca file content if enabled ssl on auth-url." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="sslInsecure" name="ssl-insecure" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Whether to verify VIM's certificate." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipAddress" name="ip-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service IP of ftp server." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="port" name="port" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service port of ftp server." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudDomain" name="cloud-domain" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="domain info for authentication." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="defaultTenant" name="default-tenant" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="default tenant of VIM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="passive" name="passive" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="ftp passive mode or not." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="remotepath" name="remote-path" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="resource or performance data file path." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="systemStatus" name="system-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the status of external system." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persist common address information of external systems." /> - <xml-property name="indexedProps" value="esr-system-info-id,system-name,system-type" /> - <xml-property name="searchable" value="esr-system-info-id,system-name,system-type" /> - <xml-property name="container" value="esr-system-info-list" /> - <xml-property name="dependentOn" value="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc" /> - </xml-properties> - </java-type> - - <java-type name="CloudInfrastructure"> - <xml-properties> - <xml-property name="description" value="Namespace for cloud infrastructure." /> - </xml-properties> - <xml-root-element name="cloud-infrastructure" /> - <java-attributes> - <xml-element java-attribute="complexes" name="complexes" type="inventory.aai.onap.org.v11.Complexes" /> - <xml-element java-attribute="cloudRegions" name="cloud-regions" type="inventory.aai.onap.org.v11.CloudRegions" /> - <xml-element java-attribute="networkProfiles" name="network-profiles" type="inventory.aai.onap.org.v11.NetworkProfiles" /> - <xml-element java-attribute="pservers" name="pservers" type="inventory.aai.onap.org.v11.Pservers" /> - <xml-element java-attribute="virtualDataCenters" name="virtual-data-centers" type="inventory.aai.onap.org.v11.VirtualDataCenters" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegions"> - <xml-root-element name="cloud-regions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cloudRegion" name="cloud-region" type="inventory.aai.onap.org.v11.CloudRegion" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="CloudRegion"> - <xml-root-element name="cloud-region" /> - <java-attributes> - <xml-element java-attribute="cloudOwner" name="cloud-owner" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionId" name="cloud-region-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifier used by the vendor for the region. Second part of composite key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudType" name="cloud-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the cloud (e.g., openstack)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ownerDefinedType" name="owner-defined-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Cloud-owner defined type indicator (e.g., dcp, lcp)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionVersion" name="cloud-region-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudZone" name="cloud-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="sriovAutomation" name="sriov-automation" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Whether the cloud region supports (true) or does not support (false) SR-IOV automation." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudExtraInfo" name="cloud-extra-info" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudEpaCaps" name="cloud-epa-caps" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MultiVIM will discover and expose EPA capabilities." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroups" name="volume-groups" type="inventory.aai.onap.org.v11.VolumeGroups" /> - <xml-element java-attribute="tenants" name="tenants" type="inventory.aai.onap.org.v11.Tenants" /> - <xml-element java-attribute="flavors" name="flavors" type="inventory.aai.onap.org.v11.Flavors" /> - <xml-element java-attribute="groupAssignments" name="group-assignments" type="inventory.aai.onap.org.v11.GroupAssignments" /> - <xml-element java-attribute="snapshots" name="snapshots" type="inventory.aai.onap.org.v11.Snapshots" /> - <xml-element java-attribute="images" name="images" type="inventory.aai.onap.org.v11.Images" /> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.onap.org.v11.DvsSwitches" /> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.onap.org.v11.OamNetworks" /> - <xml-element java-attribute="availabilityZones" name="availability-zones" type="inventory.aai.onap.org.v11.AvailabilityZones" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="esrSystemInfoList" name="esr-system-info-list" type="inventory.aai.onap.org.v11.EsrSystemInfoList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="vipIpv4AddressList" name="vip-ipv4-address-list" type="inventory.aai.onap.org.v11.VipIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="vipIpv6AddressList" name="vip-ipv6-address-list" type="inventory.aai.onap.org.v11.VipIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="cloud-region designates an installation of a cloud cluster or region or instantiation." /> - <xml-property name="indexedProps" value="cloud-owner,cloud-region-id,cloud-type,owner-defined-type" /> - <xml-property name="nameProps" value="owner-defined-type" /> - <xml-property name="container" value="cloud-regions" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - <java-type name="VolumeGroups"> - <xml-properties> - <xml-property name="description" value="Collection of persistent block-level storage." /> - </xml-properties> - <xml-root-element name="volume-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volumeGroup" name="volume-group" type="inventory.aai.onap.org.v11.VolumeGroup" /> - </java-attributes> - </java-type> - - <java-type name="VolumeGroup"> - <xml-root-element name="volume-group" /> - <java-attributes> - <xml-element java-attribute="volumeGroupId" name="volume-group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of volume-group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroupName" name="volume-group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the volume group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleModelCustomizationId" name="vf-module-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="helps relate the volume group to the vf-module whose components will require the volume group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persistent block-level storage." /> - <xml-property name="indexedProps" value="volume-group-name,vnf-type,heat-stack-id,volume-group-id" /> - <xml-property name="searchable" value="volume-group-id,volume-group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="volume-groups" /> - </xml-properties> - </java-type> - - <java-type name="RelationshipList"> - <xml-root-element name="relationship-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.onap.org.v11.Relationship" /> - </java-attributes> - </java-type> - - <java-type name="Relationship"> - <xml-root-element name="relationship" /> - <java-attributes> - <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate type of node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to the object in A&AI." /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.onap.org.v11.RelationshipData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.onap.org.v11.RelatedToProperty" /> - </java-attributes> - </java-type> - - <java-type name="RelatedToProperty"> - <xml-root-element name="related-to-property" /> - <java-attributes> - <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Key part of a key/value pair" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value part of a key/value pair" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="RelationshipData"> - <xml-root-element name="relationship-data" /> - <java-attributes> - <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate an attribute." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value of the attribute." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="Complexes"> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - </xml-properties> - <xml-root-element name="complexes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="complex" name="complex" type="inventory.aai.onap.org.v11.Complex" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Complex"> - <xml-root-element name="complex" /> - <java-attributes> - <xml-element java-attribute="physicalLocationId" name="physical-location-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for physical location, e.g., CLLI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dataCenterCode" name="data-center-code" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Data center code which can be an alternate way to identify a complex" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gamma complex name for LCP instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalLocationType" name="physical-location-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type, e.g., central office, data center." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="street1" name="street1" required="true" type="java.lang.String" /> - <xml-element java-attribute="street2" name="street2" type="java.lang.String" /> - <xml-element java-attribute="city" name="city" required="true" type="java.lang.String" /> - <xml-element java-attribute="state" name="state" type="java.lang.String" /> - <xml-element java-attribute="postalCode" name="postal-code" required="true" type="java.lang.String" /> - <xml-element java-attribute="country" name="country" required="true" type="java.lang.String" /> - <xml-element java-attribute="region" name="region" required="true" type="java.lang.String" /> - <xml-element java-attribute="latitude" name="latitude" type="java.lang.String" /> - <xml-element java-attribute="longitude" name="longitude" type="java.lang.String" /> - <xml-element java-attribute="elevation" name="elevation" type="java.lang.String" /> - <xml-element java-attribute="lata" name="lata" type="java.lang.String" /> - <xml-element java-attribute="ctagPools" name="ctag-pools" type="inventory.aai.onap.org.v11.CtagPools" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - <xml-property name="indexedProps" value="identity-url,data-center-code,complex-name,physical-location-id" /> - <xml-property name="searchable" value="physical-location-id,data-center-code,complex-name,street1,street2,postal-code" /> - <xml-property name="uniqueProps" value="physical-location-id" /> - <xml-property name="container" value="complexes" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="CtagPools"> - <xml-root-element name="ctag-pools" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagPool" name="ctag-pool" type="inventory.aai.onap.org.v11.CtagPool" /> - </java-attributes> - </java-type> - - <java-type name="CtagPool"> - <xml-root-element name="ctag-pool" /> - <java-attributes> - <xml-element java-attribute="targetPe" name="target-pe" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="The Target provider edge router" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagPoolPurpose" name="ctag-pool-purpose" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Describes what the intended purpose of this pool is." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagValues" name="ctag-values" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Comma separated list of ctags" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A collection of C tags (vlan tags) grouped for a specific purpose." /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="complex" /> - <xml-property name="container" value="ctag-pools" /> - </xml-properties> - </java-type> - - <java-type name="Tenants"> - <xml-properties> - <xml-property name="description" value="Collection of openstack tenants." /> - </xml-properties> - <xml-root-element name="tenants" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tenant" name="tenant" type="inventory.aai.onap.org.v11.Tenant" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Tenant"> - <xml-root-element name="tenant" /> - <java-attributes> - <xml-element java-attribute="tenantId" name="tenant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id relative to the cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tenantName" name="tenant-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Readable name of tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tenantContext" name="tenant-context" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store the tenant context." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vservers" name="vservers" type="inventory.aai.onap.org.v11.Vservers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack tenant" /> - <xml-property name="nameProps" value="tenant-name" /> - <xml-property name="indexedProps" value="tenant-name,tenant-id,tenant-context" /> - <xml-property name="searchable" value="tenant-id,tenant-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="tenants" /> - </xml-properties> - </java-type> - - <java-type name="Vservers"> - <xml-properties> - <xml-property name="description" value="Collection of virtual Servers, aka virtual machines or VMs." /> - </xml-properties> - <xml-root-element name="vservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vserver" name="vserver" type="inventory.aai.onap.org.v11.Vserver" /> - </java-attributes> - </java-type> - - <java-type name="Vserver"> - <xml-root-element name="vserver" /> - <java-attributes> - <xml-element java-attribute="vserverId" name="vserver-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for this vserver relative to its tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName" name="vserver-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName2" name="vserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternative name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverSelflink" name="vserver-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumes" name="volumes" type="inventory.aai.onap.org.v11.Volumes" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v11.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Servers, aka virtual machine or VM." /> - <xml-property name="nameProps" value="vserver-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2" /> - <xml-property name="searchable" value="vserver-id,vserver-name,vserver-name2" /> - <xml-property name="dependentOn" value="tenant" /> - <xml-property name="container" value="vservers" /> - </xml-properties> - </java-type> - - <java-type name="LInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of logical interfaces." /> - </xml-properties> - <xml-root-element name="l-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.onap.org.v11.LInterface" /> - </java-attributes> - </java-type> - - <java-type name="LInterface"> - <xml-root-element name="l-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name given to the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MAC address for the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Human friendly text regarding this interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isPortMirrored" name="is-port-mirrored" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not port is a mirrored." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV]." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="isIpUnnumbered" name="is-ip-unnumbered" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="allowedAddressPairs" name="allowed-address-pairs" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Freeform field for storing an ip address, list of ip addresses or a subnet block." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.onap.org.v11.Vlans" /> - <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.onap.org.v11.SriovVfs" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v11.LInterfaces" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical interfaces, e.g., a vnic." /> - <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name" /> - <xml-property name="dependentOn" value="generic-vnf,newvce,p-interface,vserver,lag-interface" /> - <xml-property name="container" value="l-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="SriovVfs"> - <xml-properties> - <xml-property name="description" value="Collection of SR-IOV Virtual Functions." /> - </xml-properties> - <xml-root-element name="sriov-vfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sriovVf" name="sriov-vf" type="inventory.aai.onap.org.v11.SriovVf" /> - </java-attributes> - </java-type> - <java-type name="SriovVf"> - <xml-root-element name="sriov-vf" /> - <java-attributes> - <xml-element java-attribute="pciId" name="pci-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="PCI ID used to identify the sriov-vf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanFilter" name="vf-vlan-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacFilter" name="vf-mac-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanStrip" name="vf-vlan-strip" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanAntiSpoofCheck" name="vf-vlan-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacAntiSpoofCheck" name="vf-mac-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMirrors" name="vf-mirrors" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfBroadcastAllow" name="vf-broadcast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownMulticastAllow" name="vf-unknown-multicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownUnicastAllow" name="vf-unknown-unicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfInsertStag" name="vf-insert-stag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, instructs to insert outer tag after traffic comes out of VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfLinkStatus" name="vf-link-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option is used to set the link status. Valid values as of 1607 are on, off, and auto." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="SR-IOV Virtual Function (not to be confused with virtual network function)" /> - <xml-property name="indexedProps" value="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="sriov-vfs" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv4AddressList"> - <xml-root-element name="l3-interface-ipv4-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 32 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv4 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface,vnfc" /> - </xml-properties> - </java-type> - - <java-type name="Vlans"> - <xml-root-element name="vlans" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.onap.org.v11.Vlan" /> - </java-attributes> - </java-type> - - <java-type name="Vlan"> - <xml-root-element name="vlan" /> - <java-attributes> - <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String that identifies the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to describe (the service associated with) the vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnKey" name="vpn-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV]." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="isIpUnnumbered" name="is-ip-unnumbered" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Definition of vlan" /> - <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-key" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="vlans" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv6AddressList"> - <xml-root-element name="l3-interface-ipv6-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 128 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv6 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface,vnfc" /> - </xml-properties> - </java-type> - - <java-type name="Volumes"> - <xml-properties> - <xml-property name="description" value="Collection of ephemeral Block storage volumes." /> - </xml-properties> - <xml-root-element name="volumes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volume" name="volume" type="inventory.aai.onap.org.v11.Volume" /> - </java-attributes> - </java-type> - - <java-type name="Volume"> - <xml-root-element name="volume" /> - <java-attributes> - <xml-element java-attribute="volumeId" name="volume-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of block storage volume relative to the vserver." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeSelflink" name="volume-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Ephemeral Block storage volume." /> - <xml-property name="indexedProps" value="volume-id" /> - <xml-property name="dependentOn" value="vserver" /> - <xml-property name="container" value="volumes" /> - </xml-properties> - </java-type> - - <java-type name="Flavors"> - <xml-properties> - <xml-property name="description" value="Collection of openstack flavors." /> - </xml-properties> - <xml-root-element name="flavors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="flavor" name="flavor" type="inventory.aai.onap.org.v11.Flavor" /> - </java-attributes> - </java-type> - - <java-type name="Flavor"> - <xml-root-element name="flavor" /> - <java-attributes> - <xml-element java-attribute="flavorId" name="flavor-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Flavor id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorName" name="flavor-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Flavor name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorVcpus" name="flavor-vcpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of CPUs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorRam" name="flavor-ram" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of memory" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisk" name="flavor-disk" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorEphemeral" name="flavor-ephemeral" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of ephemeral disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSwap" name="flavor-swap" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="amount of swap space allocation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorIsPublic" name="flavor-is-public" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="whether flavor is available to all users or private to the tenant it was created in." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSelflink" name="flavor-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisabled" name="flavor-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Boolean as to whether this flavor is no longer enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack flavor." /> - <xml-property name="nameProps" value="flavor-name" /> - <xml-property name="indexedProps" value="flavor-name,flavor-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="flavors" /> - </xml-properties> - </java-type> - - <java-type name="Snapshots"> - <xml-properties> - <xml-property name="description" value="Collection of openstack snapshots" /> - </xml-properties> - <xml-root-element name="snapshots" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="snapshot" name="snapshot" type="inventory.aai.onap.org.v11.Snapshot" /> - </java-attributes> - </java-type> - - <java-type name="Snapshot"> - <xml-root-element name="snapshot" /> - <java-attributes> - <xml-element java-attribute="snapshotId" name="snapshot-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Snapshot id, this is the key UUID assoc associated in glance with the snapshots." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotName" name="snapshot-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Snapshot name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotArchitecture" name="snapshot-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsDistro" name="snapshot-os-distro" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsVersion" name="snapshot-os-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotSelflink" name="snapshot-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="prevSnapshotId" name="prev-snapshot-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field contains the UUID of the previous snapshot (if any)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack snapshot" /> - <xml-property name="nameProps" value="snapshot-name" /> - <xml-property name="uniqueProps" value="snapshot-id" /> - <xml-property name="indexedProps" value="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="snapshots" /> - </xml-properties> - </java-type> - - <java-type name="GroupAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack group assignments" /> - </xml-properties> - <xml-root-element name="group-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="groupAssignment" name="group-assignment" type="inventory.aai.onap.org.v11.GroupAssignment" /> - </java-attributes> - </java-type> - - <java-type name="GroupAssignment"> - <xml-root-element name="group-assignment" /> - <java-attributes> - <xml-element java-attribute="groupId" name="group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Group id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupType" name="group-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group type - the type of group this instance refers to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupName" name="group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name - name assigned to the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupDescription" name="group-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group description - description of the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack group-assignment used to store exclusivity groups (EG)." /> - <xml-property name="nameProps" value="group-name" /> - <xml-property name="indexedProps" value="group-id,group-type,group-name" /> - <xml-property name="searchable" value="group-id,group-name"/> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="group-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Images"> - <xml-properties> - <xml-property name="description" value="Collectio of Openstack images." /> - </xml-properties> - <xml-root-element name="images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="image" name="image" type="inventory.aai.onap.org.v11.Image" /> - </java-attributes> - </java-type> - - <java-type name="Image"> - <xml-root-element name="image" /> - <java-attributes> - <xml-element java-attribute="imageId" name="image-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Image id, expected to be unique across cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageName" name="image-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Image name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageArchitecture" name="image-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsDistro" name="image-os-distro" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsVersion" name="image-os-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageSelflink" name="image-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v11.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack image." /> - <xml-property name="nameProps" value="image-name" /> - <xml-property name="indexedProps" value="application,image-name,application-vendor,image-id,application-version" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="images" /> - </xml-properties> - </java-type> - - <java-type name="Metadata"> - <xml-properties> - <xml-property name="description" value="Collection of metadatum (key/value pairs)" /> - </xml-properties> - <xml-root-element name="metadata" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.onap.org.v11.Metadatum" /> - </java-attributes> - </java-type> - - <java-type name="Metadatum"> - <xml-root-element name="metadatum" /> - <java-attributes> - <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Key/value pairs" /> - <xml-property name="indexedProps" value="metaname" /> - <xml-property name="dependentOn" value="tenant,image,service-instance,connector,model" /> - <xml-property name="container" value="metadata" /> - </xml-properties> - </java-type> - - <java-type name="DvsSwitches"> - <xml-properties> - <xml-property name="description" value="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs." /> - </xml-properties> - <xml-root-element name="dvs-switches" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="dvsSwitch" name="dvs-switch" type="inventory.aai.onap.org.v11.DvsSwitch" /> - </java-attributes> - </java-type> - - <java-type name="DvsSwitch"> - <xml-root-element name="dvs-switch" /> - <java-attributes> - <xml-element java-attribute="switchName" name="switch-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="DVS switch name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcenterUrl" name="vcenter-url" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL used to reach the vcenter" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. " /> - <xml-property name="indexedProps" value="vcenter-url,switch-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="dvs-switches" /> - </xml-properties> - </java-type> - - <java-type name="NetworkProfiles"> - <xml-properties> - <xml-property name="description" value="Collection of network profiles" /> - </xml-properties> - <xml-root-element name="network-profiles" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkProfile" name="network-profile" type="inventory.aai.onap.org.v11.NetworkProfile" /> - </java-attributes> - </java-type> - - <java-type name="NetworkProfile"> - <xml-root-element name="network-profile" /> - <java-attributes> - <xml-element java-attribute="nmProfileName" name="nm-profile-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique name of network profile." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="communityString" name="community-string" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted SNMP community string" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Network profile populated by SDN-GP for SNMP" /> - <xml-property name="indexedProps" value="nm-profile-name" /> - <xml-property name="container" value="network-profiles" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="Pservers"> - <xml-properties> - <xml-property name="description" value="Collection of compute hosts." /> - </xml-properties> - <xml-root-element name="pservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pserver" name="pserver" type="inventory.aai.onap.org.v11.Pserver" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Pserver"> - <xml-root-element name="pserver" /> - <java-attributes> - <xml-element java-attribute="hostname" name="hostname" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value from executing hostname on the compute node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ptniiEquipName" name="ptnii-equip-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="PTNII name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="numberOfCpus" name="number-of-cpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of cpus" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="diskInGigabytes" name="disk-in-gigabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk size, in GBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ramInMegabytes" name="ram-in-megabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="RAM size, in MBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="fqdn" name="fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Fully-qualified domain name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverSelflink" name="pserver-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to configure device, also used for troubleshooting and is IP used for traps generated by device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number, may be queried" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 OAM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverId" name="pserver-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of Pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="internetTopology" name="internet-topology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="internet topology of Pserver" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverName2" name="pserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="alternative pserver name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="purpose of pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates who owns and or manages the device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hostProfile" name="host-profile" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The host profile that defines the configuration of the pserver." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v11.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v11.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver." /> - <xml-property name="nameProps" value="pserver-name2" /> - <xml-property name="indexedProps" value="hostname,in-maint,pserver-id,pserver-name2,inv-status" /> - <xml-property name="searchable" value="hostname,pserver-name2,pserver-id,ipv4-oam-address" /> - <xml-property name="container" value="pservers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="PInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of physical interfaces." /> - </xml-properties> - <xml-root-element name="p-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.onap.org.v11.PInterface" /> - </java-attributes> - </java-type> - - <java-type name="PInterface"> - <xml-root-element name="p-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the physical interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nature of the services and connectivity on this port." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CLEI or other specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the physical properties of the interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="macAddress" name="mac-addresss" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MAC Address of the p-interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="inventory status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="sriovPfs" name="sriov-pfs" type="inventory.aai.onap.org.v11.SriovPfs" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v11.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Physical interface (e.g., nic)" /> - <xml-property name="indexedProps" value="interface-name,prov-status" /> - <xml-property name="nameProps" value="prov-status" /> - <xml-property name="dependentOn" value="vpls-pe,pserver,pnf" /> - <xml-property name="container" value="p-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="LagInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregate interfaces." /> - </xml-properties> - <xml-root-element name="lag-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.onap.org.v11.LagInterface" /> - </java-attributes> - </java-type> - - <java-type name="LagInterface"> - <xml-root-element name="lag-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the link aggregate interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Human friendly text regarding this interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v11.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Link aggregate interface" /> - <xml-property name="indexedProps" value="interface-name,interface-id,interface-role" /> - <xml-property name="dependentOn" value="generic-vnf,pserver,vpls-pe,pnf" /> - <xml-property name="container" value="lag-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="OamNetworks"> - <xml-properties> - <xml-property name="description" value="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. " /> - </xml-properties> - <xml-root-element name="oam-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="oamNetwork" name="oam-network" type="inventory.aai.onap.org.v11.OamNetwork" /> - </java-attributes> - </java-type> - - <java-type name="OamNetwork"> - <xml-root-element name="oam-network" /> - <java-attributes> - <xml-element java-attribute="networkUuid" name="network-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of the network. Unique across a cloud-region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="cvlan-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="OAM network, to be deprecated shortly. Do not use for new purposes. " /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="cvlan-tag,network-uuid,network-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="oam-networks" /> - </xml-properties> - </java-type> - - <java-type name="AvailabilityZones"> - <xml-properties> - <xml-property name="description" value="Collection of availability zones" /> - </xml-properties> - <xml-root-element name="availability-zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.onap.org.v11.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="AvailabilityZone"> - <xml-root-element name="availability-zone" /> - <java-attributes> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone. Unique across a cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hypervisorType" name="hypervisor-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of hypervisor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Availability zone, a collection of compute hosts/pservers" /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="availability-zones" /> - </xml-properties> - </java-type> - - <java-type name="VirtualDataCenters"> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - </xml-properties> - <xml-root-element name="virtual-data-centers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="virtualDataCenter" name="virtual-data-center" type="inventory.aai.onap.org.v11.VirtualDataCenter" /> - </java-attributes> - </java-type> - - <java-type name="VirtualDataCenter"> - <xml-root-element name="virtual-data-center" /> - <java-attributes> - <xml-element java-attribute="vdcId" name="vdc-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the vdc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdcName" name="vdc-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the virtual data center" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - <xml-property name="nameProps" value="vdc-name" /> - <xml-property name="indexedProps" value="vdc-name,vdc-id" /> - <xml-property name="container" value="virtual-data-centers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="Business"> - <xml-properties> - <xml-property name="description" value="Namespace for business related constructs" /> - </xml-properties> - <xml-root-element name="business" /> - <java-attributes> - <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.onap.org.v11.Connectors" /> - <xml-element java-attribute="customers" name="customers" type="inventory.aai.onap.org.v11.Customers" /> - <xml-element java-attribute="linesOfBusiness" name="lines-of-business" type="inventory.aai.onap.org.v11.LinesOfBusiness" /> - <xml-element java-attribute="owningEntities" name="owning-entities" type="inventory.aai.onap.org.v11.OwningEntities" /> - <xml-element java-attribute="platforms" name="platforms" type="inventory.aai.onap.org.v11.Platforms" /> - <xml-element java-attribute="projects" name="projects" type="inventory.aai.onap.org.v11.Projects" /> - </java-attributes> - </java-type> - - <java-type name="Projects"> - <xml-properties> - <xml-property name="description" value="Collection of projects" /> - </xml-properties> - <xml-root-element name="projects" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="project" name="project" type="inventory.aai.onap.org.v11.Project" /> - </java-attributes> - </java-type> - - <java-type name="Project"> - <xml-root-element name="project" /> - <java-attributes> - <xml-element java-attribute="projectName" name="project-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the project deploying a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="describes the project" /> - <xml-property name="indexedProps" value="project-name" /> - <xml-property name="uniqueProps" value="project-name" /> - <xml-property name="container" value="projects" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="Connectors"> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - </xml-properties> - <xml-root-element name="connectors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.onap.org.v11.Connector" /> - </java-attributes> - </java-type> - - <java-type name="Connector"> - <xml-root-element name="connector" /> - <java-attributes> - <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of resource instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v11.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - <xml-property name="indexedProps" value="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version" /> - <xml-property name="container" value="connectors" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="Customers"> - <xml-properties> - <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." /> - </xml-properties> - <xml-root-element name="customers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.onap.org.v11.Customer" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Customer"> - <xml-root-element name="customer" /> - <java-attributes> - <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." /> - <xml-property name="defaultValue" value="CUST" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.onap.org.v11.ServiceSubscriptions" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." /> - <xml-property name="nameProps" value="subscriber-name" /> - <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" /> - <xml-property name="searchable" value="global-customer-id,subscriber-name" /> - <xml-property name="uniqueProps" value="global-customer-id" /> - <xml-property name="container" value="customers" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="LinesOfBusiness"> - <xml-properties> - <xml-property name="description" value="Collection of lines-of-business" /> - </xml-properties> - <xml-root-element name="lines-of-business" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lineOfBusiness" name="line-of-business" type="inventory.aai.onap.org.v11.LineOfBusiness" /> - </java-attributes> - </java-type> - - <java-type name="LineOfBusiness"> - <xml-root-element name="line-of-business" /> - <java-attributes> - <xml-element java-attribute="lineOfBusinessName" name="line-of-business-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the line-of-business (product)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="describes a line-of-business" /> - <xml-property name="indexedProps" value="line-of-business-name" /> - <xml-property name="uniqueProps" value="line-of-business-name" /> - <xml-property name="container" value="lines-of-business" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="OwningEntities"> - <xml-properties> - <xml-property name="description" value="Collection of owning-entities" /> - </xml-properties> - <xml-root-element name="owning-entities" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="owningEntity" name="owning-entity" type="inventory.aai.onap.org.v11.OwningEntity" /> - </java-attributes> - </java-type> - - <java-type name="OwningEntity"> - <xml-root-element name="owning-entity" /> - <java-attributes> - <xml-element java-attribute="owningEntityId" name="owning-entity-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of an owning entity" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="owningEntityName" name="owning-entity-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Owning entity name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="describes an owning-entity" /> - <xml-property name="indexedProps" value="owning-entity-id, owning-entity-name" /> - <xml-property name="searchable" value="owning-entity-id" /> - <xml-property name="uniqueProps" value="owning-entity-id, owning-entity-name" /> - <xml-property name="container" value="owning-entities" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="Platforms"> - <xml-properties> - <xml-property name="description" value="Collection of platforms" /> - </xml-properties> - <xml-root-element name="platforms" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="platform" name="platform" type="inventory.aai.onap.org.v11.Platform" /> - </java-attributes> - </java-type> - - <java-type name="Platform"> - <xml-root-element name="platform" /> - <java-attributes> - <xml-element java-attribute="platformName" name="platform-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the platform" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="describes a platform" /> - <xml-property name="indexedProps" value="platform-name" /> - <xml-property name="uniqueProps" value="platform-name" /> - <xml-property name="container" value="platforms" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="ServiceSubscriptions"> - <xml-properties> - <xml-property name="description" value="Collection of objects that group service instances." /> - </xml-properties> - <xml-root-element name="service-subscriptions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.onap.org.v11.ServiceSubscription" /> - </java-attributes> - </java-type> - - <java-type name="ServiceSubscription"> - <xml-root-element name="service-subscription" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This property will be deleted from A&AI in the near future. Only stop gap solution." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.onap.org.v11.ServiceInstances"> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Object that group service instances." /> - <xml-property name="indexedProps" value="service-type" /> - <xml-property name="dependentOn" value="customer" /> - <xml-property name="container" value="service-subscriptions" /> - <xml-property name="crossEntityReference" value="service-instance,service-type" /> - </xml-properties> - </java-type> - - <java-type name="ServiceInstances"> - <xml-properties> - <xml-property name="description" value="Collection of service instances" /> - </xml-properties> - <xml-root-element name="service-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.onap.org.v11.ServiceInstance" /> - </java-attributes> - </java-type> - - <java-type name="ServiceInstance"> - <xml-root-element name="service-instance" /> - <java-attributes> - <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Uniquely identifies this instance of a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store a name assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceType" name="service-type" required="false" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceRole" name="service-role" required="false" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing the service role." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="environmentContext" name="environment-context" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store the environment context assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="workloadContext" name="workload-context" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store the workload context assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the total bandwidth to be used for this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL customers will use to access the vHN Portal." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v11.Metadata" /> - <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.onap.org.v11.AllottedResources" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Instance of a service" /> - <xml-property name="indexedProps" value="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context" /> - <xml-property name="nameProps" value="service-instance-name" /> - <xml-property name="searchable" value="service-instance-id,service-instance-name" /> - <xml-property name="uniqueProps" value="service-instance-id" /> - <xml-property name="dependentOn" value="service-subscription" /> - <xml-property name="container" value="service-instances" /> - </xml-properties> - </java-type> - - <java-type name="ServiceDesignAndCreation"> - <xml-properties> - <xml-property name="description" value="Namespace for objects managed by ASDC" /> - </xml-properties> - <xml-root-element name="service-design-and-creation" /> - <java-attributes> - <xml-element java-attribute="vnfImages" name="vnf-images" type="inventory.aai.onap.org.v11.VnfImages" /> - <xml-element java-attribute="services" name="services" type="inventory.aai.onap.org.v11.Services" /> - <xml-element java-attribute="serviceCapabilities" name="service-capabilities" type="inventory.aai.onap.org.v11.ServiceCapabilities" /> - <xml-element java-attribute="models" name="models" type="inventory.aai.onap.org.v11.Models" /> - <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.onap.org.v11.NamedQueries" /> - </java-attributes> - </java-type> - - <java-type name="VnfImages"> - <xml-properties> - <xml-property name="description" value="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - </xml-properties> - <xml-root-element name="vnf-images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfImage" name="vnf-image" type="inventory.aai.onap.org.v11.VnfImage" /> - </java-attributes> - </java-type> - - <java-type name="VnfImage"> - <xml-root-element name="vnf-image" /> - <java-attributes> - <xml-element java-attribute="vnfImageUuid" name="vnf-image-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of this asset" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - <xml-property name="indexedProps" value="application,vnf-image-uuid,application-vendor,application-version" /> - <xml-property name="uniqueProps" value="vnf-image-uuid" /> - <xml-property name="container" value="vnf-images" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Services"> - <xml-properties> - <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC." /> - </xml-properties> - <xml-root-element name="services" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.onap.org.v11.Service" /> - </java-attributes> - </java-type> - - <java-type name="Service"> - <xml-root-element name="service" /> - <java-attributes> - <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description of the service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services." /> - <xml-property name="indexedProps" value="service-description,service-id" /> - <xml-property name="container" value="services" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="ServiceCapabilities"> - <xml-properties> - <xml-property name="description" value="Collection of service capabilities." /> - </xml-properties> - <xml-root-element name="service-capabilities" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceCapability" name="service-capability" type="inventory.aai.onap.org.v11.ServiceCapability" /> - </java-attributes> - </java-type> - - <java-type name="ServiceCapability"> - <xml-root-element name="service-capability" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this." /> - <xml-property name="indexedProps" value="service-type,vnf-type" /> - <xml-property name="container" value="service-capabilities" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Network"> - <xml-properties> - <xml-property name="description" value="Namespace for network inventory resources." /> - </xml-properties> - <xml-root-element name="network" /> - <java-attributes> - <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.onap.org.v11.LogicalLinks" /> - <xml-element java-attribute="sitePairSets" name="site-pair-sets" type="inventory.aai.onap.org.v11.SitePairSets" /> - <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.onap.org.v11.VpnBindings" /> - <xml-element java-attribute="vplsPes" name="vpls-pes" type="inventory.aai.onap.org.v11.VplsPes" /> - <xml-element java-attribute="multicastConfigurations" name="multicast-configurations" type="inventory.aai.onap.org.v11.MulticastConfigurations" /> - <xml-element java-attribute="vces" name="vces" type="inventory.aai.onap.org.v11.Vces" /> - <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.onap.org.v11.Vnfcs" /> - <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.onap.org.v11.L3Networks" /> - <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.onap.org.v11.NetworkPolicies" /> - <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.onap.org.v11.GenericVnfs" /> - <xml-element java-attribute="lagLinks" name="lag-links" type="inventory.aai.onap.org.v11.LagLinks" /> - <xml-element java-attribute="newvces" name="newvces" type="inventory.aai.onap.org.v11.Newvces" /> - <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.onap.org.v11.Pnfs" /> - <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.onap.org.v11.PhysicalLinks" /> - <xml-element java-attribute="ipsecConfigurations" name="ipsec-configurations" type="inventory.aai.onap.org.v11.IpsecConfigurations" /> - <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.onap.org.v11.RouteTableReferences" /> - <xml-element java-attribute="instanceGroups" name="instance-groups" type="inventory.aai.onap.org.v11.InstanceGroups" /> - <xml-element java-attribute="zones" name="zones" type="inventory.aai.onap.org.v11.Zones" /> - </java-attributes> - </java-type> - <java-type name="Configurations"> - <xml-properties> - <xml-property name="description" value="Collection of configurations" /> - </xml-properties> - <xml-root-element name="configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="configuration" name="configurations" type="inventory.aai.onap.org.v11.Configuration" /> - </java-attributes> - </java-type> - - <java-type name="Configuration"> - <xml-root-element name="configuration" /> - <java-attributes> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="configurationId" name="configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID assigned to configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="configurationName" name="configuration-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="configurationType" name="configuration-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="port-mirroring-configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="configurationSubType" name="configuration-sub-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="vprobe, pprobe." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of the configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="configurationSelflink" name="configuration-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details from SDN-GC." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id of the configuration used to customize the resource" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v11.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Port Mirror Configuration." /> - <xml-property name="indexedProps" value="configuration-id,model-invariant-id,model-version-id" /> - <xml-property name="uniqueProps" value="configuration-id" /> - <xml-property name="container" value="configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="LogicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of logical connections" /> - </xml-properties> - <xml-root-element name="logical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.onap.org.v11.LogicalLink" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLink"> - <xml-root-element name="logical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of logical link, e.g., evc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4, v6, or ds for dual stack" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="For example, static or BGP" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of operational status of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of the network use of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkId" name="link-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the logical-link, SDNC generates this." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Reason for this entity, role it is playing" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" /> - <xml-property name="indexedProps" value="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose" /> - <xml-property name="uniqueProps" value="link-id" /> - <xml-property name="container" value="logical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name" /> - </xml-properties> - </java-type> - - <java-type name="SitePairSets"> - <xml-properties> - <xml-property name="description" value="Collection of sets of instances for probes related to generic-vnf" /> - </xml-properties> - <xml-root-element name="site-pair-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePairSet" name="site-pair-set" type="inventory.aai.onap.org.v11.SitePairSet" /> - </java-attributes> - </java-type> - - <java-type name="SitePairSet"> - <xml-root-element name="site-pair-set" /> - <java-attributes> - <xml-element java-attribute="sitePairSetId" name="site-pair-set-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of site pair set." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingInstances" name="routing-instances" type="inventory.aai.onap.org.v11.RoutingInstances" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Set of instances for probes used to measure service level agreements" /> - <xml-property name="indexedProps" value="site-pair-set-id" /> - <xml-property name="uniqueProps" value="site-pair-set-id" /> - <xml-property name="container" value="site-pair-sets" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="RoutingInstances"> - <xml-properties> - <xml-property name="description" value="set of probes related to generic-vnf routing instance" /> - </xml-properties> - <xml-root-element name="routing-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routingInstance" name="routing-instance" type="inventory.aai.onap.org.v11.RoutingInstance" /> - </java-attributes> - </java-type> - - <java-type name="RoutingInstance"> - <xml-root-element name="routing-instance" /> - <java-attributes> - <xml-element java-attribute="routingInstanceId" name="routing-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of routing instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpmOwner" name="rpm-owner" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rpm owner" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sitePairs" name="site-pairs" type="inventory.aai.onap.org.v11.SitePairs" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="routing-instance-id" /> - <xml-property name="dependentOn" value="site-pair-set" /> - <xml-property name="container" value="routing-instances" /> - </xml-properties> - </java-type> - - <java-type name="SitePairs"> - <xml-properties> - <xml-property name="description" value="probe within a set" /> - </xml-properties> - <xml-root-element name="site-pairs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePair" name="site-pair" type="inventory.aai.onap.org.v11.SitePair" /> - </java-attributes> - </java-type> - - <java-type name="SitePair"> - <xml-root-element name="site-pair" /> - <java-attributes> - <xml-element java-attribute="sitePairId" name="site-pair-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceIp" name="source-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationIp" name="destination-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version, v4, v6" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationHostname" name="destination-hostname" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Hostname of the destination equipment to which SLAs are measured against." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationEquipType" name="destination-equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The type of destinatination equipment. Could be Router, UCPE, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="classesOfService" name="classes-of-service" type="inventory.aai.onap.org.v11.ClassesOfService" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="site-pair-id" /> - <xml-property name="uniqueProps" value="site-pair-id" /> - <xml-property name="dependentOn" value="routing-instance" /> - <xml-property name="container" value="site-pairs" /> - </xml-properties> - </java-type> - - <java-type name="ClassesOfService"> - <xml-properties> - <xml-property name="description" value="class-of-service of probe" /> - </xml-properties> - <xml-root-element name="classes-of-service" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="classOfService" name="class-of-service" type="inventory.aai.onap.org.v11.ClassOfService" /> - </java-attributes> - </java-type> - - <java-type name="ClassOfService"> - <xml-root-element name="class-of-service" /> - <java-attributes> - <xml-element java-attribute="cos" name="cos" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeId" name="probe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeType" name="probe-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="cos" /> - <xml-property name="dependentOn" value="site-pair" /> - <xml-property name="container" value="classes-of-service" /> - </xml-properties> - </java-type> - - <java-type name="VpnBindings"> - <xml-root-element name="vpn-bindings" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpnBinding" name="vpn-binding" type="inventory.aai.onap.org.v11.VpnBinding" /> - </java-attributes> - </java-type> - - <java-type name="VpnBinding"> - <xml-root-element name="vpn-binding" /> - <java-attributes> - <xml-element java-attribute="vpnId" name="vpn-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="VPN ID, globally unique within A&AI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnName" name="vpn-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="VPN Name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnPlatform" name="vpn-platform" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the platform associated with the VPN example AVPN, Mobility" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnType" name="vpn-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the vpn, should be taken from enumerated/valid values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnRegion" name="vpn-region" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="region of customer vpn" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="customerVpnId" name="customer-vpn-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id for this customer vpn" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeDistinguisher" name="route-distinguisher" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTargets" name="route-targets" type="inventory.aai.onap.org.v11.RouteTargets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList"> - <xml-properties> - <xml-property name="description" value="l3-networks relate to vpn-bindings" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPN binding" /> - <xml-property name="nameProps" value="vpn-name,vpn-type" /> - <xml-property name="indexedProps" value="vpn-name,vpn-id,vpn-type" /> - <xml-property name="searchable" value="vpn-id,vpn-name" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="container" value="vpn-bindings" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="VplsPes"> - <xml-properties> - <xml-property name="description" value="Collection of VPLS Provider Edge routers" /> - </xml-properties> - <xml-root-element name="vpls-pes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vplsPe" name="vpls-pe" type="inventory.aai.onap.org.v11.VplsPe" /> - </java-attributes> - </java-type> - - <java-type name="VplsPe"> - <xml-root-element name="vpls-pe" /> - <java-attributes> - <xml-element java-attribute="equipmentName" name="equipment-name" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPLS-PE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v11.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v11.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPLS Provider Edge routers." /> - <xml-property name="indexedProps" value="prov-status,equipment-name" /> - <xml-property name="container" value="vpls-pes" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="MulticastConfigurations"> - <xml-properties> - <xml-property name="description" value="multicast configuration of generic-vnf ip-address" /> - </xml-properties> - <xml-root-element name="multicast-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="multicastConfiguration" name="multicast-configuration" type="inventory.aai.onap.org.v11.MulticastConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="MulticastConfiguration"> - <xml-root-element name="multicast-configuration" /> - <java-attributes> - <xml-element java-attribute="multicastConfigurationId" name="multicast-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of multicast configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="multicastProtocol" name="multicast-protocol" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="protocol of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpType" name="rp-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rp type of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="multicast-configuration-id" /> - <xml-property name="uniqueProps" value="multicast-configuration-id" /> - <xml-property name="container" value="multicast-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Vces"> - <xml-properties> - <xml-property name="description" value="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated." /> - </xml-properties> - <xml-root-element name="vces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vce" name="vce" type="inventory.aai.onap.org.v11.Vce" /> - </java-attributes> - </java-type> - - <java-type name="Vce"> - <xml-root-element name="vce" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network role being played by this VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpeId" name="vpe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID of VPE connected to this VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6VceWanAddress" name="v6-vce-wan-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid v6 IP address for the WAN Link on this router. Implied length of /64." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - see child relationships" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroups" name="port-groups" type="inventory.aai.onap.org.v11.PortGroups" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.onap.org.v11.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.onap.org.v11.Entitlements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vces" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="PortGroups"> - <xml-root-element name="port-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="portGroup" name="port-group" type="inventory.aai.onap.org.v11.PortGroup" /> - </java-attributes> - </java-type> - - <java-type name="PortGroup"> - <xml-root-element name="port-group" /> - <java-attributes> - <xml-element java-attribute="interfaceId" name="interface-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkName" name="neutron-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network name of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupId" name="port-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID for port group in vmware" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupName" name="port-group-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Likely to duplicate value of neutron network name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="switchName" name="switch-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="DVS or standard switch name (should be non-null for port groups associated with DVS)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTags" name="cvlan-tags" type="inventory.aai.onap.org.v11.CvlanTags" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Used to capture the network interfaces of this VCE" /> - <xml-property name="nameProps" value="port-group-name" /> - <xml-property name="indexedProps" value="port-group-id,heat-stack-id,interface-id,interface-name,switch-name" /> - <xml-property name="dependentOn" value="vce" /> - <xml-property name="container" value="port-groups" /> - </xml-properties> - </java-type> - - <java-type name="CvlanTags"> - <xml-root-element name="cvlan-tags" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cvlanTagEntry" name="cvlan-tag-entry" type="inventory.aai.onap.org.v11.CvlanTagEntry" /> - </java-attributes> - </java-type> - - <java-type name="CvlanTagEntry"> - <xml-root-element name="cvlan-tag-entry" /> - <java-attributes> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="See mis-na-virtualization-platform.yang" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="dependentOn" value="port-group" /> - <xml-property name="indexedProps" value="cvlan-tag" /> - <xml-property name="container" value="cvlan-tags" /> - </xml-properties> - </java-type> - - - - <java-type name="Vnfcs"> - <xml-properties> - <xml-property name="description" value="virtual network components associated with a vserver from application controller." /> - </xml-properties> - <xml-root-element name="vnfcs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.onap.org.v11.Vnfc" /> - </java-attributes> - </java-type> - - <java-type name="Vnfc"> - <xml-root-element name="vnfc" /> - <java-attributes> - <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vnfc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfcNamingCode" name="nfc-naming-code" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Short code that is used in naming instances of the item being modeled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfcFunction" name="nfc-function" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="prov status of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Oam V4 vip address of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group notation of VNFC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id" /> - <xml-property name="searchable" value="vnfc-name" /> - <xml-property name="container" value="vnfcs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="L3Networks"> - <xml-root-element name="l3-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.onap.org.v11.L3Network" /> - </java-attributes> - </java-type> - - <java-type name="L3Network"> - <xml-root-element name="l3-network" /> - <java-attributes> - <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Network ID, should be uuid. Unique across A&AI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network, governed by some naming convention.." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkType" name="network-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the network - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role the network plans - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network technology - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBoundToVpn" name="is-bound-to-vpn" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Set to true if bound to VPN" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="network role instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the physical network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a provider network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a shared network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is an external network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.onap.org.v11.Subnets" /> - <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.onap.org.v11.CtagAssignments" /> - <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.onap.org.v11.SegmentationAssignments" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" > - <xml-properties> - <xml-property name="description" value="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Generic network definition" /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role" /> - <xml-property name="searchable" value="network-id,network-name" /> - <xml-property name="uniqueProps" value="network-id" /> - <xml-property name="container" value="l3-networks" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="NetworkPolicies"> - <xml-root-element name="network-policies" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkPolicy" name="network-policy" type="inventory.aai.onap.org.v11.NetworkPolicy" /> - </java-attributes> - </java-type> - <java-type name="NetworkPolicy"> - <xml-root-element name="network-policy" /> - <java-attributes> - <xml-element java-attribute="networkPolicyId" name="network-policy-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID representing unique key to this instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkPolicyFqdn" name="network-policy-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the policy" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID for the openStack Heat instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="nameProps" value="network-policy-fqdn" /> - <xml-property name="indexedProps" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="searchable" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="uniqueProps" value="network-policy-id" /> - <xml-property name="container" value="network-policies" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="CtagAssignments"> - <xml-root-element name="ctag-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.onap.org.v11.CtagAssignment" /> - </java-attributes> - </java-type> - - <java-type name="CtagAssignment"> - <xml-root-element name="ctag-assignment" /> - <java-attributes> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="id." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vlan-id-inner" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="ctag-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Subnets"> - <xml-root-element name="subnets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.onap.org.v11.Subnet" /> - </java-attributes> - </java-type> - - <java-type name="Subnet"> - <xml-root-element name="subnet" /> - <java-attributes> - <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Subnet ID, should be UUID." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the subnet." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of this subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="gateway ip address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="network start address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="cidr mask" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="dhcpEnabled" name="dhcp-enabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="dhcp enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the start address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the last address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetRole" name="subnet-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="role of the subnet, referenced when assigning IPs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipAssignmentDirection" name="ip-assignment-direction" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip address assignment direction of the subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetSequence" name="subnet-sequence" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="sequence of the subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hostRoutes" name="host-routes" type="inventory.aai.onap.org.v11.HostRoutes" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="subnet-id,subnet-name" /> - <xml-property name="nameProps" value="subnet-name" /> - <xml-property name="uniqueProps" value="subnet-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="subnets" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnfs"> - <xml-properties> - <xml-property name="description" value="Collection of VNFs" /> - </xml-properties> - <xml-root-element name="generic-vnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.onap.org.v11.GenericVnf" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnf"> - <xml-root-element name="generic-vnf" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - <xml-property name="suggestibleOnSearch" value="true"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, used by MSO." /> - <xml-property name="suggestibleOnSearch" value="true"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by ATT or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 Loopback address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 management address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether generic-vnf access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementAssignmentGroupUuid" name="entitlement-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the specific entitlement resource. OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseAssignmentGroupUuid" name="license-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the license assignment group. OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKeyUuid" name="license-key-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the actual license resource. OBSOLETE - See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="represents sub zone of the rr plane" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfType" name="nf-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Generic description of the type of NF" /> - <xml-property name="suggestibleOnSearch" value="true"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfFunction" name="nf-function" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="English description of Network function that the specific VNF deployment is providing" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="role in the network that this model will be providing" /> - <xml-property name="suggestibleOnSearch" value="true"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfNamingCode" name="nf-naming-code" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="string assigned to this model used for naming purposes" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gateway address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Prefix length for oam-address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for S-TAG to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nmProfileName" name="nm-profile-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network Management profile of this VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v11.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v11.LagInterfaces" /> - <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.onap.org.v11.VfModules" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.onap.org.v11.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.onap.org.v11.Entitlements" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="General purpose VNF" /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="generic-vnfs" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - <xml-property name="containsSuggestibleProps" value="true"/> - <xml-property name="suggestionAliases" value="VNFs"/> - </xml-properties> - </java-type> - - <java-type name="VfModules"> - <xml-properties> - <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs" /> - </xml-properties> - <xml-root-element name="vf-modules" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.onap.org.v11.VfModule" /> - </java-attributes> - </java-type> - - <java-type name="VfModule"> - <xml-root-element name="vf-module" /> - <java-attributes> - <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vf-module." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vf-module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBaseVfModule" name="is-base-vf-module" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is base vf module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the Contrail unique ID for a service-instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="moduleIndex" name="module-index" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="a deployment unit of VNFCs" /> - <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn" /> - <xml-property name="searchable" value="vf-module-id,vf-module-name" /> - <xml-property name="dependentOn" value="generic-vnf" /> - <xml-property name="container" value="vf-modules" /> - </xml-properties> - </java-type> - - - <java-type name="LagLinks"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregation connections" /> - </xml-properties> - <xml-root-element name="lag-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagLink" name="lag-link" type="inventory.aai.onap.org.v11.LagLink" /> - </java-attributes> - </java-type> - - <java-type name="LagLink"> - <xml-root-element name="lag-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Alphabetical concatenation of lag-interface names" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="LAG links can connect lag-interfaces" /> - <xml-property name="indexedProps" value="link-name" /> - <xml-property name="container" value="lag-links" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Newvces"> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - </xml-properties> - <xml-root-element name="newvces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="newvce" name="newvce" type="inventory.aai.onap.org.v11.Newvce" /> - </java-attributes> - </java-type> - - <java-type name="Newvce"> - <xml-root-element name="newvce" /> - <java-attributes> - <xml-element java-attribute="vnfId2" name="vnf-id2" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF, can't use same attribute name right now until we promote this new object" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v11.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2" /> - <xml-property name="searchable" value="vnf-id2,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id2" /> - <xml-property name="container" value="newvces" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Pnfs"> - <xml-properties> - <xml-property name="description" value="Collection of Physical Network Functions." /> - </xml-properties> - <xml-root-element name="pnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.onap.org.v11.Pnf" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Pnf"> - <xml-root-element name="pnf" /> - <java-attributes> - <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="source of name2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id of pnf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by ATT or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number of the device" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 OAM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nf Role is the role performed by this instance in the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v11.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v11.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE." /> - <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status" /> - <xml-property name="searchable" value="pnf-name" /> - <xml-property name="uniqueProps" value="pnf-name" /> - <xml-property name="container" value="pnfs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - </xml-properties> - <xml-root-element name="physical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.onap.org.v11.PhysicalLink" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLink"> - <xml-root-element name="physical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit it" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Dual access mode (e.g., primary, secondary" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="To provide information on who manages this circuit. A&AI or 3rd party transport provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the service Provider on this link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderBandwidthUpValue" name="service-provider-bandwidth-up-value" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Upstream Bandwidth value agreed with the service provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderBandwidthUpUnits" name="service-provider-bandwidth-up-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Units for the upstream BW value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderBandwidthDownValue" name="service-provider-bandwidth-down-value" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Downstream Bandwidth value agreed with the service provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderBandwidthDownUnits" name="service-provider-bandwidth-down-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Units for downstream BW value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - <xml-property name="indexedProps" value="circuit-id,link-name" /> - <xml-property name="alternateKeys1" value="circuit-id" /> - <xml-property name="container" value="physical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name,circuit-id" /> - </xml-properties> - </java-type> - - <java-type name="VigServers"> - <xml-root-element name="vig-servers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vigServer" name="vig-server" type="inventory.aai.onap.org.v11.VigServer" /> - </java-attributes> - </java-type> - - <java-type name="VigServer"> - <xml-root-element name="vig-server" /> - <java-attributes> - <xml-element java-attribute="vigAddressType" name="vig-address-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="indicates whether the VIG is for AVPN or INTERNET" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV4Vig" name="ipaddress-v4-vig" type="java.lang.String" > - <xml-properties> - <xml-property name="description" value="v4 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV6Vig" name="ipaddress-v6-vig" type="java.lang.String" > - <xml-properties> - <xml-property name="description" value="v6 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607" /> - <xml-property name="indexedProps" value="vig-address-type" /> - <xml-property name="dependentOn" value="ipsec-configuration" /> - <xml-property name="container" value="vig-servers" /> - </xml-properties> - </java-type> - - <java-type name="IpsecConfigurations"> - <xml-root-element name="ipsec-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ipsecConfiguration" name="ipsec-configuration" type="inventory.aai.onap.org.v11.IpsecConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="IpsecConfiguration"> - <xml-root-element name="ipsec-configuration" /> - <java-attributes> - <xml-element java-attribute="ipsecConfigurationId" name="ipsec-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of this configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedVigAddressType" name="requested-vig-address-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicate the type of VIG server like AVPN, INTERNET, BOTH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedEncryptionStrength" name="requested-encryption-strength" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedDmzType" name="requested-dmz-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ATT can offer a shared DMZ or a DMZ specific to a customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sharedDmzNetworkAddress" name="shared-dmz-network-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network address of shared DMZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedCustomerName" name="requested-customer-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="If the DMZ is a custom DMZ, this field will indicate the customer information" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikeVersion" name="ike-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="can be 1 or 2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Authentication" name="ikev1-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contains values like md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Encryption" name="ikev1-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encyption values like 3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1DhGroup" name="ikev1-dh-group" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmGroupId" name="ikev1-am-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name defined in VIG for clients using aggressive mode" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmPassword" name="ikev1-am-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="pre-shared key for the above group name " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1SaLifetime" name="ikev1-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Lifetime for IKEv1 SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecAuthentication" name="ipsec-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecEncryption" name="ipsec-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecSaLifetime" name="ipsec-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Life time for IPSec SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecPfs" name="ipsec-pfs" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="enable PFS or not" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserId" name="xauth-userid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="user ID for xAuth, sm-user,ucpeHostName,nmteHostName" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserPassword" name="xauth-user-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted using the Juniper $9$ algorithm" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdInterval" name="dpd-interval" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The time between DPD probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdFrequency" name="dpd-frequency" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Maximum number of DPD before claiming the tunnel is down" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - <xml-element java-attribute="vigServers" name="vig-servers" type="inventory.aai.onap.org.v11.VigServers" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C" /> - <xml-property name="indexedProps" value="ipsec-configuration-id" /> - <xml-property name="uniqueProps" value="ipsec-configuration-id" /> - <xml-property name="container" value="ipsec-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="NotificationEvent"> - <xml-root-element name="notification-event" /> - <java-attributes> - <xml-element java-attribute="cambriaPartition" name="cambria.partition" type="java.lang.String" /> - <xml-element java-attribute="eventHeader" name="event-header" type="inventory.aai.onap.org.v11.NotificationEventHeader" /> - <xml-any-element java-attribute="entity" /> - </java-attributes> - </java-type> - <java-type name="NotificationEventHeader"> - <xml-root-element name="notification-event-header" /> - <java-attributes> - <xml-element java-attribute="id" name="id" type="java.lang.String" /> - <xml-element java-attribute="timestamp" name="timestamp" type="java.lang.String" /> - <xml-element java-attribute="sourceName" name="source-name" type="java.lang.String" /> - <xml-element java-attribute="domain" name="domain" type="java.lang.String" /> - <xml-element java-attribute="sequenceNumber" name="sequence-number" type="java.lang.String" /> - <xml-element java-attribute="severity" name="severity" type="java.lang.String" /> - <xml-element java-attribute="eventType" name="event-type" type="java.lang.String" /> - <xml-element java-attribute="version" name="version" type="java.lang.String" /> - <xml-element java-attribute="action" name="action" type="java.lang.String" /> - <xml-element java-attribute="entityType" name="entity-type" type="java.lang.String" /> - <xml-element java-attribute="topEntityType" name="top-entity-type" type="java.lang.String" /> - <xml-element java-attribute="entityLink" name="entity-link" type="java.lang.String" /> - <xml-element java-attribute="status" name="status" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="AaiInternal"> - <xml-root-element name="aai-internal" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="reservedPropNames" name="reserved-prop-names" type="inventory.aai.onap.org.v11.ReservedPropNames" /> - <xml-element container-type="java.util.ArrayList" java-attribute="edgePropNames" name="edge-prop-names" type="inventory.aai.onap.org.v11.EdgePropNames" /> - </java-attributes> - </java-type> - <java-type name="ReservedPropNames"> - <xml-properties> - <xml-property name="description" value="Internal map to define some reserved properties of a vertex" /> - <xml-property name="uniqueProps" value="aai-unique-key" /> - <xml-property name="indexedProps" value="aai-unique-key,source-of-truth,aai-node-type,aai-uri" /> - </xml-properties> - <xml-root-element name="reserved-prop-names" /> - <java-attributes> - <xml-element java-attribute="lastModSourceOfTruth" name="last-mod-source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiNodeType" name="aai-node-type" type="java.lang.String" /> - <xml-element java-attribute="aaiCreatedTs" name="aai-created-ts" type="java.lang.Long" /> - <xml-element java-attribute="aaiUniqueKey" name="aai-unique-key" type="java.lang.String" /> - <xml-element java-attribute="aaiLastModTs" name="aai-last-mod-ts" type="java.lang.Long" /> - <xml-element java-attribute="sourceOfTruth" name="source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiUri" name="aai-uri" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="EdgePropNames"> - <!-- NOTE that the names of these properties are not consistent and are in mixed case and hyphen case for now --> - <xml-properties> - <xml-property name="description" value="Internal map to define the properties of an edge and interpret the map EdgeRules" /> - <xml-property name="edgeInfo" value="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV" /> - </xml-properties> - <xml-root-element name="edge-prop-names" /> - <java-attributes> - <xml-element java-attribute="edgeLabel" name="edgeLabel" type="java.lang.String" /> - <xml-element java-attribute="direction" name="direction" type="java.lang.String" /> - <xml-element java-attribute="multiplicityRule" name="multiplicityRule" type="java.lang.String" /> - <xml-element java-attribute="containsOtherV" name="contains-other-v" type="java.lang.String" /> - <xml-element java-attribute="deleteOtherV" name="delete-other-v" type="java.lang.String" /> - <xml-element java-attribute="svcinfra" name="SVC-INFRA" type="java.lang.String" /> - <xml-element java-attribute="preventDelete" name="prevent-delete" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Models"> - <xml-properties> - <xml-property name="description" value="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models" /> - </xml-properties> - <xml-root-element name="models" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.onap.org.v11.Model" /> - </java-attributes> - </java-type> - - <java-type name="Model"> - <xml-root-element name="model" /> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version" /> - <xml-property name="nameProps" value="model-type" /> - <xml-property name="indexedProps" value="model-invariant-id,model-type" /> - <xml-property name="uniqueProps" value="model-invariant-id" /> - <xml-property name="container" value="models" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.onap.org.v11.ModelVers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - - <java-type name="ModelVers"> - <xml-root-element name="model-vers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelVer" name="model-ver" type="inventory.aai.onap.org.v11.ModelVer" /> - </java-attributes> - </java-type> - - <java-type name="ModelVer"> - <xml-root-element name="model-ver" /> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models" /> - <xml-property name="nameProps" value="model-name" /> - <xml-property name="indexedProps" value="model-version-id,model-name,model-version" /> - <xml-property name="uniqueProps" value="model-version-id" /> - <xml-property name="container" value="model-vers" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelVersionId" name="model-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v11.ModelElements" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v11.Metadata" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelElements"> - <xml-root-element name="model-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.onap.org.v11.ModelElement" /> - </java-attributes> - </java-type> - - <java-type name="ModelElement"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model." /> - <xml-property name="uniqueProps" value="model-element-uuid" /> - <xml-property name="indexedProps" value="model-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-elements" /> - </xml-properties> - <xml-root-element name="model-element" /> - <java-attributes> - <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="How many of this type of element are required/allowed" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-points" type="java.lang.String" > - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v11.ModelElements"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.onap.org.v11.ModelConstraints"> - <xml-properties> - <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraints"> - <xml-root-element name="model-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.onap.org.v11.ModelConstraint" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraint"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="model-constraint-uuid" /> - <xml-property name="indexedProps" value="model-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-constraints" /> - </xml-properties> - <xml-root-element name="model-constraint" /> - <java-attributes> - <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String" /> - <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.onap.org.v11.ConstrainedElementSets" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSets"> - <xml-root-element name="constrained-element-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.onap.org.v11.ConstrainedElementSet" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="constrained-element-set-uuid" /> - <xml-property name="indexedProps" value="constrained-element-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="constrained-element-sets" /> - </xml-properties> - <xml-root-element name="constrained-element-set" /> - <java-attributes> - <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.onap.org.v11.ElementChoiceSets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSets"> - <xml-root-element name="element-choice-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.onap.org.v11.ElementChoiceSet" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="element-choice-set-uuid" /> - <xml-property name="indexedProps" value="element-choice-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="element-choice-sets" /> - </xml-properties> - <xml-root-element name="element-choice-set" /> - <java-attributes> - <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v11.ModelElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueries"> - <xml-root-element name="named-queries" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.onap.org.v11.NamedQuery" /> - </java-attributes> - </java-type> - - <java-type name="NamedQuery"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="nameProps" value="named-query-name" /> - <xml-property name="uniqueProps" value="named-query-uuid" /> - <xml-property name="indexedProps" value="named-query-uuid,named-query-name" /> - <xml-property name="container" value="named-queries" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="named-query" /> - <java-attributes> - <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String" > - <xml-element-wrapper name="required-input-params" /> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.onap.org.v11.NamedQueryElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElements"> - <xml-root-element name="named-query-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.onap.org.v11.NamedQueryElement" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElement"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="named-query-element-uuid" /> - <xml-property name="indexedProps" value="named-query-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="named-query-elements" /> - </xml-properties> - <xml-root-element name="named-query-element" /> - <java-attributes> - <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String" /> - <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.onap.org.v11.NamedQueryElements" /> - <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.onap.org.v11.RelatedLookups" /> - <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.onap.org.v11.PropertyConstraints" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookups"> - <xml-root-element name="related-lookups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.onap.org.v11.RelatedLookup" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookup"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="related-lookup-uuid" /> - <xml-property name="indexedProps" value="related-lookup-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="related-lookups" /> - </xml-properties> - <xml-root-element name="related-lookup" /> - <java-attributes> - <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraints"> - <xml-root-element name="property-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.onap.org.v11.PropertyConstraint" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraint"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="property-constraint-uuid" /> - <xml-property name="indexedProps" value="property-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="property-constraints" /> - </xml-properties> - <xml-root-element name="property-constraint" /> - <java-attributes> - <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="propertyName" name="property-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ModelAndNamedQuerySearch"> - <xml-properties> - <xml-property name="description" value="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="model-and-named-query-search" /> - <java-attributes> - <xml-element java-attribute="queryParameters" name="query-parameters" type="inventory.aai.onap.org.v11.QueryParameters" /> - <xml-element java-attribute="instanceFilters" name="instance-filters" type="inventory.aai.onap.org.v11.InstanceFilters" /> - <xml-element java-attribute="secondaryFilts" name="secondary-filts" type="inventory.aai.onap.org.v11.SecondaryFilts" /> - <xml-element java-attribute="topNodeType" name="top-node-type" type="java.lang.String" /> - <xml-element java-attribute="secondaryFilterCutPoint" name="secondary-filter-cut-point" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="QueryParameters"> - <xml-properties> - <xml-property name="description" value="QueryParameters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="query-parameters" /> - <java-attributes> - <xml-element java-attribute="namedQuery" name="named-query" type="inventory.aai.onap.org.v11.NamedQuery" /> - <xml-element java-attribute="model" name="model" type="inventory.aai.onap.org.v11.OverloadedModel" /> - </java-attributes> - </java-type> - - <java-type name="OverloadedModel"> - <xml-root-element name="overloaded-model" /> - <xml-properties> - <xml-property name="description" value="Allows for legacy POST of old-style and new-style models" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelNameVersionId" name="model-name-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelId" name="model-id" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Invariant unique ID which does not change from version to version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.onap.org.v11.ModelVers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilters"> - <xml-properties> - <xml-property name="description" value="InstanceFilters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="instance-filters" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceFilter" name="instance-filter" type="inventory.aai.onap.org.v11.InstanceFilter" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilter"> - <xml-properties> - <xml-property name="description" value="InstanceFilter for performing a named-query or model query" /> - <xml-property name="container" value="instance-filters" /> - </xml-properties> - <xml-root-element name="instance-filter" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilts"> - <xml-properties> - <xml-property name="description" value="SecondaryFilts for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="secondary-filts" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilt" name="secondary-filt" type="inventory.aai.onap.org.v11.SecondaryFilt" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilt"> - <xml-properties> - <xml-property name="description" value="SecondaryFilt for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="secondary-filt" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="Properties"> - <xml-properties> - <xml-property name="description" value="Property holder for query properties or instance properties" /> - </xml-properties> - <xml-root-element name="properties" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ResponseList"> - <xml-properties> - <xml-property name="description" value="Response container for the results of a named-query or model query" /> - </xml-properties> - <xml-root-element name="response-list" /> - <java-attributes> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.onap.org.v11.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItems"> - <xml-properties> - <xml-property name="description" value="Container for inventory items in response list" /> - <xml-property name="container" value="response-list" /> - </xml-properties> - <xml-root-element name="inventory-response-items" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryResponseItem" name="inventory-response-item" type="inventory.aai.onap.org.v11.InventoryResponseItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItem"> - <xml-properties> - <xml-property name="description" value="Inventory item for response list" /> - <xml-property name="container" value="inventory-response-items" /> - </xml-properties> - <xml-root-element name="inventory-response-item" /> - <java-attributes> - <xml-element java-attribute="modelName" name="model-name" type="java.lang.String" /> - <xml-any-element java-attribute="item" /> - <xml-element java-attribute="extraProperties" name="extra-properties" type="inventory.aai.onap.org.v11.ExtraProperties" /> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.onap.org.v11.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperties"> - <xml-properties> - <xml-property name="description" value="Extra properties for inventory item for response list" /> - </xml-properties> - <xml-root-element name="extra-properties" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="extraProperty" name="extra-property" type="inventory.aai.onap.org.v11.ExtraProperty" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperty"> - <xml-root-element name="extra-property" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReferences"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="route-table-references" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routeTableReference" name="route-table-reference" type="inventory.aai.onap.org.v11.RouteTableReference" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReference"> - <xml-root-element name="route-table-reference" /> - <java-attributes> - <xml-element java-attribute="routeTableReferenceId" name="route-table-reference-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTableReferenceFqdn" name="route-table-reference-fqdn" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="FQDN entry in the route table." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Openstack route table reference." /> - <xml-property name="nameProps" value="route-table-reference-fqdn" /> - <xml-property name="uniqueProps" value="route-table-reference-id" /> - <xml-property name="indexedProps" value="route-table-reference-id,route-table-reference-fqdn" /> - <xml-property name="container" value="route-table-references" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="InstanceGroups"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="instance-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceGroup" name="instance-group" type="inventory.aai.onap.org.v11.InstanceGroup" /> - </java-attributes> - </java-type> - - <java-type name="InstanceGroup"> - <xml-root-element name="instance-group" /> - <java-attributes> - <xml-element java-attribute="instanceGroupRole" name="instance-group-role" required="false" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="role of the instance group." /> - </xml-properties> - </xml-element> - - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="false" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - - <xml-element java-attribute="modelVersionId" name="model-version-id" required="false" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ASDC model version uid for this resource model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Instance Group ID, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="description" name="description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Descriptive text to help identify the usage of this instance-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="type" name="type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Only valid value today is lower case ha for high availability" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subType" name="sub-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="General mechanism for grouping instances" /> - <xml-property name="nameProps" value="description" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="searchable" value="id,description"/> - <xml-property name="indexedProps" value="id,description,type,sub-type" /> - <xml-property name="container" value="instance-groups" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="SegmentationAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack segmentation assignments" /> - </xml-properties> - <xml-root-element name="segmentation-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.onap.org.v11.SegmentationAssignment" /> - </java-attributes> - </java-type> - - <java-type name="SegmentationAssignment"> - <xml-root-element name="segmentation-assignment" /> - <java-attributes> - <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack segmentation assignment." /> - <xml-property name="indexedProps" value="segmentation-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="segmentation-assignments" /> - </xml-properties> - </java-type> - - <java-type name="AllottedResources"> - <xml-properties> - <xml-property name="description" value="This object is used to store slices of services being offered" /> - </xml-properties> - <xml-root-element name="allotted-resources" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="allottedResource" name="allotted-resource" type="inventory.aai.onap.org.v11.AllottedResource" /> - </java-attributes> - </java-type> - - <java-type name="AllottedResource"> - <xml-root-element name="allotted-resource" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The descriptive information assigned to this allotted resource instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Link back to more information in the controller" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-version-id" /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - <xml-property name="requires" value="model-invariant-id" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="type" name="type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Generic description of the type of allotted resource." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="role" name="role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="role in the network that this resource will be providing." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.onap.org.v11.TunnelXconnects" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Represents a slice or partial piece of a resource that gets separately allotted" /> - <xml-property name="nameProps" value="description" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id,model-invariant-id,model-version-id,type,role" /> - <xml-property name="dependentOn" value="service-instance" /> - <xml-property name="container" value="allotted-resources" /> - <!-- <xml-property name="namespace" value="network" /> --> - </xml-properties> - </java-type> - - <java-type name="TunnelXconnects"> - <xml-properties> - <xml-property name="description" value="This object is used to store the specific tunnel cross connect aspects of an allotted resource" /> - </xml-properties> - <xml-root-element name="tunnel-xconnects" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tunnelXconnect" name="tunnel-xconnect" type="inventory.aai.onap.org.v11.TunnelXconnect" /> - </java-attributes> - </java-type> - - <java-type name="TunnelXconnect"> - <xml-root-element name="tunnel-xconnect" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN uplink bandwidth for WAN1" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN downlink bandwidth for WAN1" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN uplink bandwidth for WAN2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN downlink bandwidth for WAN2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id" /> - <xml-property name="dependentOn" value="allotted-resource" /> - <xml-property name="container" value="tunnel-xconnects" /> - <!-- <xml-property name="namespace" value="network" /> --> - </xml-properties> - </java-type> - - <java-type name="Entitlements"> - <xml-properties> - <xml-property name="description" value="Entitlements, keyed by group-uuid and resource-uuid, related to license management" /> - </xml-properties> - <xml-root-element name="entitlements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="entitlement" name="entitlement" type="inventory.aai.onap.org.v11.Entitlement" /> - </java-attributes> - </java-type> - - <java-type name="Entitlement"> - <xml-root-element name="entitlement" /> - <java-attributes> - <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID for the entitlement group the resource comes from, should be uuid." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of an entitlement resource. " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Metadata for entitlement group." /> - <xml-property name="indexedProps" value="group-uuid,resource-uuid" /> - <xml-property name="dependentOn" value="generic-vnf,vce" /> - <xml-property name="container" value="entitlements" /> - </xml-properties> - </java-type> - - - <java-type name="Licenses"> - <xml-properties> - <xml-property name="description" value="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management" /> - </xml-properties> - <xml-root-element name="licenses" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="license" name="license" type="inventory.aai.onap.org.v11.License" /> - </java-attributes> - </java-type> - - <java-type name="License"> - <xml-root-element name="license" /> - <java-attributes> - <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID for the license group the resource belongs to, should be uuid." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of a license resource. " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Metadata for license group." /> - <xml-property name="indexedProps" value="group-uuid,resource-uuid" /> - <xml-property name="dependentOn" value="generic-vnf,vce" /> - <xml-property name="container" value="licenses" /> - </xml-properties> - </java-type> - - <java-type name="Vnf"> - <xml-root-element name="vnf"/> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Abstract vnf class" /> - <xml-property name="indexedProps" value="vnf-id" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="inheritors" value="vce,generic-vnf" /> - <xml-property name="abstract" value="true" /> - </xml-properties> - </java-type> - - <java-type name="Zones"> - <xml-properties> - <xml-property name="description" value="Collection of zones" /> - </xml-properties> - <xml-root-element name="zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="zone" name="zone" type="inventory.aai.onap.org.v11.Zone" /> - </java-attributes> - </java-type> - - <java-type name="Zone"> - <xml-root-element name="zone" /> - <java-attributes> - <xml-element java-attribute="zoneId" name="zone-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Code assigned by AIC to the zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="zoneName" name="zone-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="English name associated with the zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="designType" name="design-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Design of zone [Medium/Large?]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="zoneContext" name="zone-context" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Context of zone [production/test]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="status" name="status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Status of a zone." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A zone is a grouping of assets in a location homing to the same connections into the CBB" /> - <xml-property name="nameProps" value="zone-name" /> - <xml-property name="indexedProps" value="zone-id,design-type,zone-context" /> - <xml-property name="uniqueProps" value="zone-id" /> - <xml-property name="container" value="zones" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="RouteTargets"> - <xml-properties> - <xml-property name="description" value="Collection of route target information" /> - </xml-properties> - <xml-root-element name="route-targets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routeTarget" name="route-target" type="inventory.aai.onap.org.v11.RouteTarget" /> - </java-attributes> - </java-type> - <java-type name="RouteTarget"> - <xml-root-element name="route-target" /> - <java-attributes> - <xml-element java-attribute="globalRouteTarget" name="global-route-target" required="true" xml-key="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Number used to identify an RT, globally unique in the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTargetRole" name="route-target-role" required="true" xml-key="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this route target" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Route target information" /> - <xml-property name="container" value="route-targets" /> - <xml-property name="dependentOn" value="vpn-binding" /> - <xml-property name="canBeLinked" value="true" /> - </xml-properties> - </java-type> - - <java-type name="SriovPfs"> - <xml-properties> - <xml-property name="description" value="Collection of SR-IOV Physical Functions." /> - </xml-properties> - <xml-root-element name="sriov-pfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sriovPf" name="sriov-pf" type="inventory.aai.onap.org.v11.SriovPf" /> - </java-attributes> - </java-type> - <java-type name="SriovPf"> - <xml-root-element name="sriov-pf" /> - <java-attributes> - <xml-element java-attribute="pfPciId" name="pf-pci-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifier for the sriov-pf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="SR-IOV Physical Function" /> - <xml-property name="indexedProps" value="pf-pci-id" /> - <xml-property name="dependentOn" value="p-interface" /> - <xml-property name="container" value="sriov-pfs" /> - </xml-properties> - </java-type> - - <java-type name="HostRoutes"> - <xml-root-element name="host-routes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="hostRoute" name="host-route" type="inventory.aai.onap.org.v11.HostRoute" /> - </java-attributes> - </java-type> - <java-type name="HostRoute"> - <xml-root-element name="host-route" /> - <java-attributes> - <xml-element java-attribute="hostRouteId" name="host-route-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="host-route id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routePrefix" name="route-prefix" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="subnet prefix" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nextHop" name="next-hop" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Could be ip-address, hostname, or service-instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nextHopType" name="next-hop-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Should be ip-address, hostname, or service-instance to match next-hop" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="host-route-id" /> - <xml-property name="dependentOn" value="subnet" /> - <xml-property name="container" value="host-routes" /> - </xml-properties> - </java-type> - <java-type name="VipIpv4AddressList"> - <xml-root-element name="vip-ipv4-address-list" /> - <java-attributes> - <xml-element java-attribute="vipIpv4Address" name="vip-ipv4-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vipIpv4PrefixLength" name="vip-ipv4-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 32 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv4 Address Range" /> - <xml-property name="indexedProps" value="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - </xml-properties> - </java-type> - - <java-type name="VipIpv6AddressList"> - <xml-root-element name="vip-ipv6-address-list" /> - <java-attributes> - <xml-element java-attribute="vipIpv6Address" name="vip-ipv6-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vipIpv6PrefixLength" name="vip-ipv6-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 128 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv6 Address Range" /> - <xml-property name="indexedProps" value="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - </xml-properties> - </java-type> - </java-types> -</xml-bindings> diff --git a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v8.xml b/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v8.xml deleted file mode 100644 index 3ed2ea531f..0000000000 --- a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v8.xml +++ /dev/null @@ -1,3076 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- - ============LICENSE_START======================================================= - org.openecomp.aai - ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - ================================================================================ - 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. - ============LICENSE_END========================================================= - --> - -<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.openecomp.org.v8" xml-mapping-metadata-complete="true"> - <xml-schema element-form-default="QUALIFIED"> - <xml-ns namespace-uri="http://org.openecomp.aai.inventory/v8" /> - </xml-schema> - <java-types> - <java-type name="Inventory"> - <xml-root-element name="inventory" /> - <java-attributes> - <xml-element java-attribute="search" name="search" type="inventory.aai.openecomp.org.v8.Search" /> - <xml-element java-attribute="actions" name="actions" type="inventory.aai.openecomp.org.v8.Actions" /> - <xml-element java-attribute="cloudInfrastructure" name="cloud-infrastructure" type="inventory.aai.openecomp.org.v8.CloudInfrastructure" /> - <xml-element java-attribute="business" name="business" type="inventory.aai.openecomp.org.v8.Business" /> - <xml-element java-attribute="serviceDesignAndCreation" name="service-design-and-creation" type="inventory.aai.openecomp.org.v8.ServiceDesignAndCreation" /> - <xml-element java-attribute="network" name="network" type="inventory.aai.openecomp.org.v8.Network" /> - <xml-element java-attribute="aaiInternal" name="aai-internal" type="inventory.aai.openecomp.org.v8.AaiInternal" /> - </java-attributes> - </java-type> - - <java-type name="Search"> - <xml-root-element name="search" /> - <java-attributes> - <xml-element java-attribute="searchResults" name="search-results" type="inventory.aai.openecomp.org.v8.SearchResults" /> - </java-attributes> - </java-type> - - - <java-type name="TaggedInventoryItemList"> - <xml-root-element name="tagged-inventory-item-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItem" name="inventory-item" type="inventory.aai.openecomp.org.v8.InventoryItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItem"> - <xml-root-element name="inventory-item" /> - <java-attributes> - <xml-element java-attribute="inventoryItemType" name="inventory-item-type" type="java.lang.String" /> - <xml-element java-attribute="inventoryItemLink" name="inventory-item-link" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItemData" name="inventory-item-data" type="inventory.aai.openecomp.org.v8.InventoryItemData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.openecomp.org.v8.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItemData"> - <xml-root-element name="inventory-item-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - - <java-type name="StartNodeFilter"> - <xml-root-element name="start-node-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="IncludeNodeFilter"> - <xml-root-element name="include-node-filter" /> - <java-attributes> - <xml-element java-attribute="includeNodeType" name="include-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilter"> - <xml-root-element name="secondary-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="filterType" name="filter-type" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SearchResults"> - <xml-root-element name="search-results" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="resultData" name="result-data" type="inventory.aai.openecomp.org.v8.ResultData" /> - </java-attributes> - </java-type> - - <java-type name="ResultData"> - <xml-root-element name="result-data" /> - <java-attributes> - <xml-element java-attribute="resourceType" name="resource-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The specific type of node in the AAI graph" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceLink" name="resource-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The URL to the specific resource" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="Actions"> - <xml-properties> - <xml-property name="description" value="APIs that are more action related than REST (e.g., notify, update)." /> - </xml-properties> - <xml-root-element name="actions" /> - <java-attributes> - <xml-element java-attribute="update" name="update" type="inventory.aai.openecomp.org.v8.Update" /> - <xml-element java-attribute="notify" name="notify" type="inventory.aai.openecomp.org.v8.Notify" /> - </java-attributes> - </java-type> - - <java-type name="Update"> - <xml-properties> - <xml-property name="description" value="Serves a PATCH like function. Does not enforce concurrency control." /> - </xml-properties> - <xml-root-element name="update" /> - <java-attributes> - <xml-element java-attribute="updateNodeType" name="update-node-type" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="updateNodeKey" name="update-node-key" type="inventory.aai.openecomp.org.v8.UpdateNodeKey" /> - <xml-element java-attribute="updateNodeUri" name="update-node-uri" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="action" name="action" type="inventory.aai.openecomp.org.v8.Action" /> - </java-attributes> - </java-type> - - <java-type name="Action"> - <xml-root-element name="action" /> - <java-attributes> - <xml-element java-attribute="actionType" name="action-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="actionData" name="action-data" type="inventory.aai.openecomp.org.v8.ActionData" /> - </java-attributes> - </java-type> - - <java-type name="ActionData"> - <xml-root-element name="action-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="UpdateNodeKey"> - <xml-root-element name="update-node-key" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Notify"> - <xml-root-element name="notify" /> - <java-attributes> - <xml-element java-attribute="eventId" name="event-id" required="true" type="java.lang.String" /> - <xml-element java-attribute="nodeType" name="node-type" type="java.lang.String" /> - <xml-element java-attribute="eventTrigger" name="event-trigger" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="keyData" name="key-data" type="inventory.aai.openecomp.org.v8.KeyData" /> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="KeyData"> - <xml-root-element name="key-data" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="CloudInfrastructure"> - <xml-properties> - <xml-property name="description" value="Namespace for cloud infrastructure." /> - </xml-properties> - <xml-root-element name="cloud-infrastructure" /> - <java-attributes> - <xml-element java-attribute="cloudRegions" name="cloud-regions" type="inventory.aai.openecomp.org.v8.CloudRegions" /> - <xml-element java-attribute="pservers" name="pservers" type="inventory.aai.openecomp.org.v8.Pservers" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegions"> - <xml-root-element name="cloud-regions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cloudRegion" name="cloud-region" type="inventory.aai.openecomp.org.v8.CloudRegion" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegion"> - <xml-root-element name="cloud-region" /> - <java-attributes> - <xml-element java-attribute="cloudOwner" name="cloud-owner" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionId" name="cloud-region-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifier used by the vendor for the region. Second part of composite key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudType" name="cloud-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the cloud (e.g., openstack)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ownerDefinedType" name="owner-defined-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Cloud-owner defined type indicator" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionVersion" name="cloud-region-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Software version employed at the site" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudZone" name="cloud-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Zone where the cloud is homed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="complex name for cloud-region instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroups" name="volume-groups" type="inventory.aai.openecomp.org.v8.VolumeGroups" /> - <xml-element java-attribute="tenants" name="tenants" type="inventory.aai.openecomp.org.v8.Tenants" /> - <xml-element java-attribute="flavors" name="flavors" type="inventory.aai.openecomp.org.v8.Flavors" /> - <xml-element java-attribute="groupAssignments" name="group-assignments" type="inventory.aai.openecomp.org.v8.GroupAssignments" /> - <xml-element java-attribute="snapshots" name="snapshots" type="inventory.aai.openecomp.org.v8.Snapshots" /> - <xml-element java-attribute="images" name="images" type="inventory.aai.openecomp.org.v8.Images" /> - <xml-element java-attribute="availabilityZones" name="availability-zones" type="inventory.aai.openecomp.org.v8.AvailabilityZones" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="cloud-region designates an installation of a cloud cluster or region or instantiation. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname." /> - <xml-property name="indexedProps" value="cloud-owner,cloud-region-id,cloud-type,owner-defined-type" /> - <xml-property name="nameProps" value="owner-defined-type" /> - <xml-property name="container" value="cloud-regions" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - <java-type name="VolumeGroups"> - <xml-properties> - <xml-property name="description" value="Collection of persistent block-level storage." /> - </xml-properties> - <xml-root-element name="volume-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volumeGroup" name="volume-group" type="inventory.aai.openecomp.org.v8.VolumeGroup" /> - </java-attributes> - </java-type> - - <java-type name="VolumeGroup"> - <xml-root-element name="volume-group" /> - <java-attributes> - <xml-element java-attribute="volumeGroupId" name="volume-group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of volume-group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroupName" name="volume-group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the volume group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as SDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persistent block-level storage." /> - <xml-property name="indexedProps" value="volume-group-name,vnf-type,heat-stack-id,volume-group-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="volume-groups" /> - </xml-properties> - </java-type> - - <java-type name="RelationshipList"> - <xml-root-element name="relationship-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.openecomp.org.v8.Relationship" /> - </java-attributes> - </java-type> - - <java-type name="Relationship"> - <xml-root-element name="relationship" /> - <java-attributes> - <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by AAI to indicate type of node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to the object in AAI." /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.openecomp.org.v8.RelationshipData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.openecomp.org.v8.RelatedToProperty" /> - </java-attributes> - </java-type> - - <java-type name="RelatedToProperty"> - <xml-root-element name="related-to-property" /> - <java-attributes> - <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Key part of a key/value pair" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value part of a key/value pair" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="RelationshipData"> - <xml-root-element name="relationship-data" /> - <java-attributes> - <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by AAI to indicate an attribute." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value of the attribute." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="Tenants"> - <xml-properties> - <xml-property name="description" value="Collection of openstack tenants." /> - </xml-properties> - <xml-root-element name="tenants" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tenant" name="tenant" type="inventory.aai.openecomp.org.v8.Tenant" /> - </java-attributes> - </java-type> - - <java-type name="Tenant"> - <xml-root-element name="tenant" /> - <java-attributes> - <xml-element java-attribute="tenantId" name="tenant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id relative to the cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tenantName" name="tenant-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Readable name of tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vservers" name="vservers" type="inventory.aai.openecomp.org.v8.Vservers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack tenant" /> - <xml-property name="nameProps" value="tenant-name" /> - <xml-property name="indexedProps" value="tenant-name,tenant-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="tenants" /> - </xml-properties> - </java-type> - - <java-type name="Vservers"> - <xml-properties> - <xml-property name="description" value="Collection of virtual Servers, aka virtual machines or VMs." /> - </xml-properties> - <xml-root-element name="vservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vserver" name="vserver" type="inventory.aai.openecomp.org.v8.Vserver" /> - </java-attributes> - </java-type> - - <java-type name="Vserver"> - <xml-root-element name="vserver" /> - <java-attributes> - <xml-element java-attribute="vserverId" name="vserver-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for this vserver relative to its tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName" name="vserver-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName2" name="vserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternative name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverSelflink" name="vserver-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumes" name="volumes" type="inventory.aai.openecomp.org.v8.Volumes" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v8.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Servers, aka virtual machine or VM." /> - <xml-property name="nameProps" value="vserver-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2" /> - <xml-property name="searchable" value="vserver-name,vserver-id,vserver-name2" /> - <xml-property name="dependentOn" value="tenant" /> - <xml-property name="container" value="vservers" /> - </xml-properties> - </java-type> - - <java-type name="LInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of logical interfaces." /> - </xml-properties> - <xml-root-element name="l-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.openecomp.org.v8.LInterface" /> - </java-attributes> - </java-type> - - <java-type name="LInterface"> - <xml-root-element name="l-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name given to the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MAC address for the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether AAI should be managing this interface of not. Could have value like CUSTOMER" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.openecomp.org.v8.Vlans" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.openecomp.org.v8.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.openecomp.org.v8.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical interfaces, e.g., a vnic." /> - <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name" /> - <xml-property name="dependentOn" value="generic-vnf,p-interface,vserver,lag-interface" /> - <xml-property name="container" value="l-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv4AddressList"> - <xml-root-element name="l3-interface-ipv4-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 32 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv4 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Vlans"> - <xml-root-element name="vlans" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.openecomp.org.v8.Vlan" /> - </java-attributes> - </java-type> - - <java-type name="Vlan"> - <xml-root-element name="vlan" /> - <java-attributes> - <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String that identifies the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to describe (the service associated with) the vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnId" name="vpn-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.openecomp.org.v8.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.openecomp.org.v8.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Definition of vlan" /> - <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-id" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="vlans" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv6AddressList"> - <xml-root-element name="l3-interface-ipv6-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 128 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv6 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Volumes"> - <xml-properties> - <xml-property name="description" value="Collection of ephemeral Block storage volumes." /> - </xml-properties> - <xml-root-element name="volumes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volume" name="volume" type="inventory.aai.openecomp.org.v8.Volume" /> - </java-attributes> - </java-type> - - <java-type name="Volume"> - <xml-root-element name="volume" /> - <java-attributes> - <xml-element java-attribute="volumeId" name="volume-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of block storage volume relative to the vserver." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeSelflink" name="volume-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Ephemeral Block storage volume." /> - <xml-property name="indexedProps" value="volume-id" /> - <xml-property name="dependentOn" value="vserver" /> - <xml-property name="container" value="volumes" /> - </xml-properties> - </java-type> - - <java-type name="Flavors"> - <xml-properties> - <xml-property name="description" value="Collection of openstack flavors." /> - </xml-properties> - <xml-root-element name="flavors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="flavor" name="flavor" type="inventory.aai.openecomp.org.v8.Flavor" /> - </java-attributes> - </java-type> - - <java-type name="Flavor"> - <xml-root-element name="flavor" /> - <java-attributes> - <xml-element java-attribute="flavorId" name="flavor-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Flavor id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorName" name="flavor-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Flavor name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorVcpus" name="flavor-vcpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of CPUs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorRam" name="flavor-ram" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of memory" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisk" name="flavor-disk" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorEphemeral" name="flavor-ephemeral" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of ephemeral disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSwap" name="flavor-swap" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="amount of swap space allocation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorIsPublic" name="flavor-is-public" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="whether flavor is available to all users or private to the tenant it was created in." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSelflink" name="flavor-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisabled" name="flavor-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Boolean as to whether this flavor is no longer enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack flavor." /> - <xml-property name="nameProps" value="flavor-name" /> - <xml-property name="indexedProps" value="flavor-name,flavor-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="flavors" /> - </xml-properties> - </java-type> - - <java-type name="Snapshots"> - <xml-properties> - <xml-property name="description" value="Collection of openstack snapshots" /> - </xml-properties> - <xml-root-element name="snapshots" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="snapshot" name="snapshot" type="inventory.aai.openecomp.org.v8.Snapshot" /> - </java-attributes> - </java-type> - - <java-type name="Snapshot"> - <xml-root-element name="snapshot" /> - <java-attributes> - <xml-element java-attribute="snapshotId" name="snapshot-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Snapshot id, this is the key UUID assoc associated in glance with the snapshots." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotName" name="snapshot-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Snapshot name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotArchitecture" name="snapshot-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsDistro" name="snapshot-os-distro" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsVersion" name="snapshot-os-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotSelflink" name="snapshot-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="prevSnapshotId" name="prev-snapshot-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field contains the UUID of the previous snapshot (if any)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack snapshot" /> - <xml-property name="nameProps" value="snapshot-name" /> - <xml-property name="uniqueProps" value="snapshot-id" /> - <xml-property name="indexedProps" value="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="snapshots" /> - </xml-properties> - </java-type> - - <java-type name="GroupAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack group assignments" /> - </xml-properties> - <xml-root-element name="group-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="groupAssignment" name="group-assignment" type="inventory.aai.openecomp.org.v8.GroupAssignment" /> - </java-attributes> - </java-type> - - <java-type name="GroupAssignment"> - <xml-root-element name="group-assignment" /> - <java-attributes> - <xml-element java-attribute="groupId" name="group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Group id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupType" name="group-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group type - the type of group this instance refers to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupName" name="group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name - name assigned to the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupDescription" name="group-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group description - description of the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack group-assignment used to store exclusivity groups (EG)." /> - <xml-property name="nameProps" value="group-name" /> - <xml-property name="indexedProps" value="group-id,group-type,group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="group-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Images"> - <xml-properties> - <xml-property name="description" value="Collectio of Openstack images." /> - </xml-properties> - <xml-root-element name="images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="image" name="image" type="inventory.aai.openecomp.org.v8.Image" /> - </java-attributes> - </java-type> - - <java-type name="Image"> - <xml-root-element name="image" /> - <java-attributes> - <xml-element java-attribute="imageId" name="image-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Image id, expected to be unique across cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageName" name="image-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Image name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageArchitecture" name="image-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsDistro" name="image-os-distro" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsVersion" name="image-os-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageSelflink" name="image-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v8.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack image." /> - <xml-property name="nameProps" value="image-name" /> - <xml-property name="indexedProps" value="application,image-name,application-vendor,image-id,application-version" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="images" /> - </xml-properties> - </java-type> - - <java-type name="Metadata"> - <xml-properties> - <xml-property name="description" value="Collection of metadatum (key/value pairs)" /> - </xml-properties> - <xml-root-element name="metadata" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.openecomp.org.v8.Metadatum" /> - </java-attributes> - </java-type> - - <java-type name="Metadatum"> - <xml-root-element name="metadatum" /> - <java-attributes> - <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Key/value pairs" /> - <xml-property name="indexedProps" value="metaname" /> - <xml-property name="dependentOn" value="tenant,image,service-instance,model" /> - <xml-property name="container" value="metadata" /> - </xml-properties> - </java-type> - - <java-type name="Pservers"> - <xml-properties> - <xml-property name="description" value="Collection of compute hosts." /> - </xml-properties> - <xml-root-element name="pservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pserver" name="pserver" type="inventory.aai.openecomp.org.v8.Pserver" /> - </java-attributes> - </java-type> - - <java-type name="Pserver"> - <xml-root-element name="pserver" /> - <java-attributes> - <xml-element java-attribute="hostname" name="hostname" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value from executing hostname on the compute node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ptniiEquipName" name="ptnii-equip-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="PTNII name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="numberOfCpus" name="number-of-cpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of cpus" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="diskInGigabytes" name="disk-in-gigabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk size, in GBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ramInMegabytes" name="ram-in-megabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="RAM size, in MBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="fqdn" name="fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Fully-qualified domain name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverSelflink" name="pserver-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to configure device, also used for troubleshooting and is IP used for traps generated by device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number, may be queried" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverId" name="pserver-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of Pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="internetTopology" name="internet-topology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="internet topology of Pserver" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverName2" name="pserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="alternative pserver name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="purpose of pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v8.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v8.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver." /> - <xml-property name="nameProps" value="pserver-name2" /> - <xml-property name="indexedProps" value="hostname,in-maint,pserver-id,pserver-name2" /> - <xml-property name="searchable" value="hostname,pserver-name2,pserver-id,ipv4-oam-address" /> - <xml-property name="container" value="pservers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="PInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of physical interfaces." /> - </xml-properties> - <xml-root-element name="p-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.openecomp.org.v8.PInterface" /> - </java-attributes> - </java-type> - - <java-type name="PInterface"> - <xml-root-element name="p-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the physical interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nature of the services and connectivity on this port." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CLEI or other specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the physical properties of the interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v8.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Physical interface (e.g., nic)" /> - <xml-property name="indexedProps" value="interface-name" /> - <xml-property name="dependentOn" value="pserver,pnf" /> - <xml-property name="container" value="p-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="LagInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregate interfaces." /> - </xml-properties> - <xml-root-element name="lag-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.openecomp.org.v8.LagInterface" /> - </java-attributes> - </java-type> - - <java-type name="LagInterface"> - <xml-root-element name="lag-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the link aggregate interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v8.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Link aggregate interface" /> - <xml-property name="indexedProps" value="interface-name" /> - <xml-property name="dependentOn" value="generic-vnf,pserver,pnf" /> - <xml-property name="container" value="lag-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="AvailabilityZones"> - <xml-properties> - <xml-property name="description" value="Collection of availability zones" /> - </xml-properties> - <xml-root-element name="availability-zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.openecomp.org.v8.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="AvailabilityZone"> - <xml-root-element name="availability-zone" /> - <java-attributes> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone. Unique across a cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hypervisorType" name="hypervisor-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of hypervisor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Availability zone, a collection of compute hosts/pservers" /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="availability-zones" /> - </xml-properties> - </java-type> - - <java-type name="Business"> - <xml-properties> - <xml-property name="description" value="Namespace for business related constructs" /> - </xml-properties> - <xml-root-element name="business" /> - <java-attributes> - <xml-element java-attribute="customers" name="customers" type="inventory.aai.openecomp.org.v8.Customers" /> - </java-attributes> - </java-type> - - <java-type name="Customers"> - <xml-properties> - <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." /> - </xml-properties> - <xml-root-element name="customers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.openecomp.org.v8.Customer" /> - </java-attributes> - </java-type> - - <java-type name="Customer"> - <xml-root-element name="customer" /> - <java-attributes> - <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Global customer id used across OpenECOMP to uniquely identify customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." /> - <xml-property name="defaultValue" value="CUST" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.openecomp.org.v8.ServiceSubscriptions" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." /> - <xml-property name="nameProps" value="subscriber-name" /> - <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" /> - <xml-property name="searchable" value="subscriber-name,global-customer-id" /> - <xml-property name="uniqueProps" value="global-customer-id,subscriber-name" /> - <xml-property name="alternateKeys1" value="subscriber-name" /> - <xml-property name="container" value="customers" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="ServiceSubscriptions"> - <xml-properties> - <xml-property name="description" value="Collection of objects that group service instances." /> - </xml-properties> - <xml-root-element name="service-subscriptions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.openecomp.org.v8.ServiceSubscription" /> - </java-attributes> - </java-type> - - <java-type name="ServiceSubscription"> - <xml-root-element name="service-subscription" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value defined by orchestration to identify this service across OpenECOMP." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This property will be deleted from AAI in the near future. Only stop gap solution." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.openecomp.org.v8.ServiceInstances"> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Object that group service instances." /> - <xml-property name="indexedProps" value="service-type" /> - <xml-property name="dependentOn" value="customer" /> - <xml-property name="container" value="service-subscriptions" /> - </xml-properties> - </java-type> - - <java-type name="ServiceInstances"> - <xml-properties> - <xml-property name="description" value="Collection of service instances" /> - </xml-properties> - <xml-root-element name="service-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.openecomp.org.v8.ServiceInstance" /> - </java-attributes> - </java-type> - - <java-type name="ServiceInstance"> - <xml-root-element name="service-instance" /> - <java-attributes> - <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Uniquely identifies this instance of a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store a name assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary widget model. This maps directly to the AAI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary version of the widget model.This maps directly to the AAI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the total bandwidth to be used for this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL customers will use to access the vHN Portal." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operational status of the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v8.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Instance of a service" /> - <xml-property name="indexedProps" value="service-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id" /> - <xml-property name="nameProps" value="service-instance-name" /> - <xml-property name="searchable" value="service-instance-id" /> - <xml-property name="uniqueProps" value="service-instance-id" /> - <xml-property name="dependentOn" value="service-subscription" /> - <xml-property name="container" value="service-instances" /> - </xml-properties> - </java-type> - - <java-type name="ServiceDesignAndCreation"> - <xml-properties> - <xml-property name="description" value="Namespace for objects managed by SDC" /> - </xml-properties> - <xml-root-element name="service-design-and-creation" /> - <java-attributes> - <xml-element java-attribute="services" name="services" type="inventory.aai.openecomp.org.v8.Services" /> - <xml-element java-attribute="models" name="models" type="inventory.aai.openecomp.org.v8.Models" /> - <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.openecomp.org.v8.NamedQueries" /> - </java-attributes> - </java-type> - - <java-type name="Network"> - <xml-properties> - <xml-property name="description" value="Namespace for network inventory resources." /> - </xml-properties> - <xml-root-element name="network" /> - <java-attributes> - <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.openecomp.org.v8.LogicalLinks" /> - <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.openecomp.org.v8.Vnfcs" /> - <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.openecomp.org.v8.L3Networks" /> - <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.openecomp.org.v8.GenericVnfs" /> - <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.openecomp.org.v8.Pnfs" /> - <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.openecomp.org.v8.PhysicalLinks" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of logical connections" /> - </xml-properties> - <xml-root-element name="logical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.openecomp.org.v8.LogicalLink" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLink"> - <xml-root-element name="logical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of logical link, e.g., evc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4, v6, or ds for dual stack (should be ip-version)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="For example, static or BGP" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary widget model. This maps directly to the AAI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary version of the widget model.This maps directly to the AAI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of operational status of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of the network use of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkId" name="link-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the logical-link, SDNC generates this." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" /> - <xml-property name="indexedProps" value="link-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,link-id" /> - <xml-property name="uniqueProps" value="link-id" /> - <xml-property name="container" value="logical-links" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Vnfcs"> - <xml-properties> - <xml-property name="description" value="virtual network components associated with a vserver from application controller." /> - </xml-properties> - <xml-root-element name="vnfcs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.openecomp.org.v8.Vnfc" /> - </java-attributes> - </java-type> - - <java-type name="Vnfc"> - <xml-root-element name="vnfc" /> - <java-attributes> - <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vnfc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcFunctionCode" name="vnfc-function-code" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="function code" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcType" name="vnfc-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="prov status of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Oam V4 vip address of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group notation of VNFC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation" /> - <xml-property name="container" value="vnfcs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="L3Networks"> - <xml-root-element name="l3-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.openecomp.org.v8.L3Network" /> - </java-attributes> - </java-type> - - <java-type name="L3Network"> - <xml-root-element name="l3-network" /> - <java-attributes> - <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Network ID, should be uuid. Unique across AAI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network, governed by some naming convention.." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkType" name="network-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the network - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role the network plans - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network technology - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBoundToVpn" name="is-bound-to-vpn" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Set to true if bound to VPN" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from SDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="network role instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary widget model. This maps directly to the AAI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary version of the widget model.This maps directly to the AAI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the physical network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a provider network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a shared network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is an external network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.openecomp.org.v8.Subnets" /> - <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.openecomp.org.v8.CtagAssignments" /> - <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.openecomp.org.v8.SegmentationAssignments" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" > - <xml-properties> - <xml-property name="description" value="Relates to tenant (or is it a child of tenant)" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Generic network definition" /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-network-fqdn" /> - <xml-property name="uniqueProps" value="network-id" /> - <xml-property name="container" value="l3-networks" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="CtagAssignments"> - <xml-root-element name="ctag-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.openecomp.org.v8.CtagAssignment" /> - </java-attributes> - </java-type> - - <java-type name="CtagAssignment"> - <xml-root-element name="ctag-assignment" /> - <java-attributes> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="id." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vlan-id-inner" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="ctag-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Subnets"> - <xml-root-element name="subnets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.openecomp.org.v8.Subnet" /> - </java-attributes> - </java-type> - - <java-type name="Subnet"> - <xml-root-element name="subnet" /> - <java-attributes> - <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Subnet ID, should be UUID." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the subnet." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of this subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="gateway ip address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="network start address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="cidr mask" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="dhcpEnabled" name="dhcp-enabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="dhcp enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the start address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the last address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="subnet-id,subnet-name" /> - <xml-property name="nameProps" value="subnet-name" /> - <xml-property name="uniqueProps" value="subnet-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="subnets" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnfs"> - <xml-properties> - <xml-property name="description" value="Collection of VNFs" /> - </xml-properties> - <xml-root-element name="generic-vnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.openecomp.org.v8.GenericVnf" /> - </java-attributes> - </java-type> - - <java-type name="GenericVnf"> - <xml-root-element name="generic-vnf" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as SDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from SDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="License key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, used by MSO." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 Loopback address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 management address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the generic-vnf operation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether generic-vnf access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementAssignmentGroupUuid" name="entitlement-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the Entitlement group used for licensing VNFs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the specific entitlement resource" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseAssignmentGroupUuid" name="license-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the license assignment group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKeyUuid" name="license-key-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the actual license resource" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelCustomizationId" name="persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary widget model. This maps directly to the AAI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary version of the widget model.This maps directly to the AAI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="represents sub zone of the rr plane" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v8.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v8.LagInterfaces" /> - <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.openecomp.org.v8.VfModules" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="General purpose VNF" /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="generic-vnfs" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="VfModules"> - <xml-properties> - <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs" /> - </xml-properties> - <xml-root-element name="vf-modules" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.openecomp.org.v8.VfModule" /> - </java-attributes> - </java-type> - - <java-type name="VfModule"> - <xml-root-element name="vf-module" /> - <java-attributes> - <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vf-module." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vf-module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBaseVfModule" name="is-base-vf-module" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is base vf module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary widget model. This maps directly to the AAI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the SDC data dictionary version of the widget model.This maps directly to the AAI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the Contrail unique ID for a service-instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="a deployment unit of VNFCs" /> - <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-service-instance-fqdn" /> - <xml-property name="dependentOn" value="generic-vnf" /> - <xml-property name="container" value="vf-modules" /> - </xml-properties> - </java-type> - - <java-type name="Pnfs"> - <xml-properties> - <xml-property name="description" value="Collection of Physical Network Functions." /> - </xml-properties> - <xml-root-element name="pnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.openecomp.org.v8.Pnf" /> - </java-attributes> - </java-type> - - <java-type name="Pnf"> - <xml-root-element name="pnf" /> - <java-attributes> - <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="source of name2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id of pnf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration-status is the status of orchestration on the PNF." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v8.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v8.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="PNF represents a physical network function." /> - <xml-property name="indexedProps" value="pnf-name,orchestration-status" /> - <xml-property name="uniqueProps" value="pnf-name" /> - <xml-property name="container" value="pnfs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - </xml-properties> - <xml-root-element name="physical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.openecomp.org.v8.PhysicalLink" /> - </java-attributes> - </java-type> - - <java-type name="PhysicalLink"> - <xml-root-element name="physical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit it" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Dual access mode (e.g., primary, secondary" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="To provide information on who manages this circuit. AAI or 3rd party transport provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the service Provider on this link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - <xml-property name="indexedProps" value="circuit-id,link-name" /> - <xml-property name="alternateKeys1" value="circuit-id" /> - <xml-property name="container" value="physical-links" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="NotificationEvent"> - <xml-root-element name="notification-event" /> - <java-attributes> - <xml-element java-attribute="cambriaPartition" name="cambria.partition" type="java.lang.String" /> - <xml-element java-attribute="eventHeader" name="event-header" type="inventory.aai.openecomp.org.v8.NotificationEventHeader" /> - <xml-any-element java-attribute="entity" /> - </java-attributes> - </java-type> - <java-type name="NotificationEventHeader"> - <xml-root-element name="notification-event-header" /> - <java-attributes> - <xml-element java-attribute="id" name="id" type="java.lang.String" /> - <xml-element java-attribute="timestamp" name="timestamp" type="java.lang.String" /> - <xml-element java-attribute="sourceName" name="source-name" type="java.lang.String" /> - <xml-element java-attribute="domain" name="domain" type="java.lang.String" /> - <xml-element java-attribute="sequenceNumber" name="sequence-number" type="java.lang.String" /> - <xml-element java-attribute="severity" name="severity" type="java.lang.String" /> - <xml-element java-attribute="eventType" name="event-type" type="java.lang.String" /> - <xml-element java-attribute="version" name="version" type="java.lang.String" /> - <xml-element java-attribute="action" name="action" type="java.lang.String" /> - <xml-element java-attribute="entityType" name="entity-type" type="java.lang.String" /> - <xml-element java-attribute="topEntityType" name="top-entity-type" type="java.lang.String" /> - <xml-element java-attribute="entityLink" name="entity-link" type="java.lang.String" /> - <xml-element java-attribute="status" name="status" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="AaiInternal"> - <xml-root-element name="aai-internal" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="reservedPropNames" name="reserved-prop-names" type="inventory.aai.openecomp.org.v8.ReservedPropNames" /> - <xml-element container-type="java.util.ArrayList" java-attribute="edgePropNames" name="edge-prop-names" type="inventory.aai.openecomp.org.v8.EdgePropNames" /> - </java-attributes> - </java-type> - - <java-type name="ReservedPropNames"> - <xml-properties> - <xml-property name="description" value="Internal map to define some reserved properties of a vertex" /> - <xml-property name="uniqueProps" value="aai-unique-key" /> - <xml-property name="indexedProps" value="aai-unique-key,source-of-truth,aai-node-type" /> - </xml-properties> - <xml-root-element name="reserved-prop-names" /> - <java-attributes> - <xml-element java-attribute="lastModSourceOfTruth" name="last-mod-source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiNodeType" name="aai-node-type" type="java.lang.String" /> - <xml-element java-attribute="aaiCreatedTs" name="aai-created-ts" type="java.lang.Long" /> - <xml-element java-attribute="aaiUniqueKey" name="aai-unique-key" type="java.lang.String" /> - <xml-element java-attribute="aaiLastModTs" name="aai-last-mod-ts" type="java.lang.Long" /> - <xml-element java-attribute="sourceOfTruth" name="source-of-truth" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="EdgePropNames"> - <!-- NOTE that the names of these properties are not consistent and are in mixed case and hyphen case for now --> - <xml-properties> - <xml-property name="description" value="Internal map to define the properties of an edge and interpret the map EdgeRules" /> - <xml-property name="edgeInfo" value="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV" /> - </xml-properties> - <xml-root-element name="edge-prop-names" /> - <java-attributes> - <xml-element java-attribute="edgeLabel" name="edgeLabel" type="java.lang.String" /> - <xml-element java-attribute="direction" name="direction" type="java.lang.String" /> - <xml-element java-attribute="multiplicityRule" name="multiplicityRule" type="java.lang.String" /> - <xml-element java-attribute="isParent" name="isParent" type="java.lang.Boolean" /> - <xml-element java-attribute="usesResource" name="usesResource" type="java.lang.Boolean" /> - <xml-element java-attribute="hasDelTarget" name="hasDelTarget" type="java.lang.Boolean" /> - <xml-element java-attribute="SVC-INFRA" name="SVC-INFRA" type="java.lang.String" /> - <xml-element java-attribute="SVC-INFRA-REV" name="SVC-INFRA-REV" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Services"> - <xml-properties> - <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from SDC."/> - </xml-properties> - <xml-root-element name="services" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.openecomp.org.v8.Service" /> - </java-attributes> - </java-type> - - <java-type name="Service"> - <xml-root-element name="service" /> - <java-attributes> - <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description of the service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from SDC." /> - <xml-property name="indexedProps" value="service-description,service-id" /> - <xml-property name="container" value="services" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Models"> - <xml-properties> - <xml-property name="description" value="Collection of subgraph definitions provided by SDC to describe the inventory assets and their connections related to SDC models" /> - </xml-properties> - <xml-root-element name="models" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.openecomp.org.v8.Model" /> - </java-attributes> - </java-type> - - <java-type name="Model"> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by SDC to describe an inventory asset and its connections related to SDC models" /> - <xml-property name="nameProps" value="model-name,model-type" /> - <xml-property name="indexedProps" value="model-name-version-id,model-type,model-name,model-id,model-version" /> - <xml-property name="alternateKeys1" value="model-id,model-version" /> - <xml-property name="uniqueProps" value="model-name-version-id" /> - <xml-property name="container" value="models" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="model" /> - <java-attributes> - <xml-element java-attribute="modelNameVersionId" name="model-name-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in SDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelId" name="model-id" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Invariant unique ID which does not change from version to version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v8.ModelElements" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v8.Metadata" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelElements"> - <xml-root-element name="model-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.openecomp.org.v8.ModelElement" /> - </java-attributes> - </java-type> - - <java-type name="ModelElement"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model." /> - <xml-property name="uniqueProps" value="model-element-uuid" /> - <xml-property name="indexedProps" value="model-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-elements" /> - </xml-properties> - <xml-root-element name="model-element" /> - <java-attributes> - <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="How many of this type of element are required/allowed" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-point" type="java.lang.String"> - <xml-element-wrapper name="linkage-points" /> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v8.ModelElements"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.openecomp.org.v8.ModelConstraints"> - <xml-properties> - <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraints"> - <xml-root-element name="model-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.openecomp.org.v8.ModelConstraint" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraint"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="model-constraint-uuid" /> - <xml-property name="indexedProps" value="model-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-constraints" /> - </xml-properties> - <xml-root-element name="model-constraint" /> - <java-attributes> - <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String" /> - <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.openecomp.org.v8.ConstrainedElementSets" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSets"> - <xml-root-element name="constrained-element-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.openecomp.org.v8.ConstrainedElementSet" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="constrained-element-set-uuid" /> - <xml-property name="indexedProps" value="constrained-element-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="constrained-element-sets" /> - </xml-properties> - <xml-root-element name="constrained-element-set" /> - <java-attributes> - <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.openecomp.org.v8.ElementChoiceSets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSets"> - <xml-root-element name="element-choice-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.openecomp.org.v8.ElementChoiceSet" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="element-choice-set-uuid" /> - <xml-property name="indexedProps" value="element-choice-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="element-choice-sets" /> - </xml-properties> - <xml-root-element name="element-choice-set" /> - <java-attributes> - <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v8.ModelElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueries"> - <xml-root-element name="named-queries" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.openecomp.org.v8.NamedQuery" /> - </java-attributes> - </java-type> - - <java-type name="NamedQuery"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="nameProps" value="named-query-name" /> - <xml-property name="uniqueProps" value="named-query-uuid" /> - <xml-property name="indexedProps" value="named-query-uuid,named-query-name" /> - <xml-property name="container" value="named-queries" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="named-query" /> - <java-attributes> - <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String"> - <xml-element-wrapper name="required-input-params" /> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.openecomp.org.v8.NamedQueryElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElements"> - <xml-root-element name="named-query-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.openecomp.org.v8.NamedQueryElement" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElement"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="named-query-element-uuid" /> - <xml-property name="indexedProps" value="named-query-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="named-query-elements" /> - </xml-properties> - <xml-root-element name="named-query-element" /> - <java-attributes> - <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String" /> - <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.openecomp.org.v8.NamedQueryElements" /> - <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.openecomp.org.v8.RelatedLookups" /> - <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.openecomp.org.v8.PropertyConstraints" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookups"> - <xml-root-element name="related-lookups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.openecomp.org.v8.RelatedLookup" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookup"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="related-lookup-uuid" /> - <xml-property name="indexedProps" value="related-lookup-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="related-lookups" /> - </xml-properties> - <xml-root-element name="related-lookup" /> - <java-attributes> - <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraints"> - <xml-root-element name="property-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.openecomp.org.v8.PropertyConstraint" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraint"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="property-constraint-uuid" /> - <xml-property name="indexedProps" value="property-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="property-constraints" /> - </xml-properties> - <xml-root-element name="property-constraint" /> - <java-attributes> - <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="property-name" name="property-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="property-value" name="property-value" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ModelAndNamedQuerySearch"> - <xml-properties> - <xml-property name="description" value="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="model-and-named-query-search" /> - <java-attributes> - <xml-element java-attribute="queryParameters" name="query-parameters" type="inventory.aai.openecomp.org.v8.QueryParameters" /> - <xml-element java-attribute="instanceFilters" name="instance-filters" type="inventory.aai.openecomp.org.v8.InstanceFilters" /> - <xml-element java-attribute="topNodeType" name="top-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="QueryParameters"> - <xml-properties> - <xml-property name="description" value="QueryParameters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="query-parameters" /> - <java-attributes> - <xml-element java-attribute="namedQuery" name="named-query" type="inventory.aai.openecomp.org.v8.NamedQuery" /> - <xml-element java-attribute="model" name="model" type="inventory.aai.openecomp.org.v8.Model" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilters"> - <xml-properties> - <xml-property name="description" value="InstanceFilters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="instance-filters" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceFilter" name="instance-filter" type="inventory.aai.openecomp.org.v8.InstanceFilter" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilter"> - <xml-properties> - <xml-property name="description" value="InstanceFilter for performing a named-query or model query" /> - <xml-property name="container" value="instance-filters" /> - </xml-properties> - <xml-root-element name="instance-filter" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="Properties"> - <xml-properties> - <xml-property name="description" value="Property holder for query properties or instance properties" /> - </xml-properties> - <xml-root-element name="properties" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ResponseList"> - <xml-properties> - <xml-property name="description" value="Response container for the results of a named-query or model query" /> - </xml-properties> - <xml-root-element name="response-list" /> - <java-attributes> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.openecomp.org.v8.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItems"> - <xml-properties> - <xml-property name="description" value="Container for inventory items in response list" /> - <xml-property name="container" value="response-list" /> - </xml-properties> - <xml-root-element name="inventory-response-items" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryResponseItem" name="inventory-response-item" type="inventory.aai.openecomp.org.v8.InventoryResponseItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItem"> - <xml-properties> - <xml-property name="description" value="Inventory item for response list" /> - <xml-property name="container" value="inventory-response-items" /> - </xml-properties> - <xml-root-element name="inventory-response-item" /> - <java-attributes> - <xml-element java-attribute="modelName" name="model-name" type="java.lang.String" /> - <xml-any-element java-attribute="item" /> - <xml-element java-attribute="extraProperties" name="extra-properties" type="inventory.aai.openecomp.org.v8.ExtraProperties" /> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.openecomp.org.v8.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperties"> - <xml-properties> - <xml-property name="description" value="Extra properties for inventory item for response list" /> - </xml-properties> - <xml-root-element name="extra-properties" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="extraProperty" name="extra-property" type="inventory.aai.openecomp.org.v8.ExtraProperty" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperty"> - <xml-root-element name="extra-property" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-any-element java-attribute="propertyValue" lax="true" name="property-value" /> - </java-attributes> - </java-type> - - <java-type name="SegmentationAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack segmentation assignments" /> - </xml-properties> - <xml-root-element name="segmentation-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.openecomp.org.v8.SegmentationAssignment" /> - </java-attributes> - </java-type> - - <java-type name="SegmentationAssignment"> - <xml-root-element name="segmentation-assignment" /> - <java-attributes> - <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v8.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack segmentation assignment." /> - <xml-property name="indexedProps" value="segmentation-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="segmentation-assignments" /> - </xml-properties> - </java-type> - - </java-types> -</xml-bindings> diff --git a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v9.xml b/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v9.xml deleted file mode 100644 index 87a3d656e5..0000000000 --- a/kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v9.xml +++ /dev/null @@ -1,5451 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- - ============LICENSE_START======================================================= - org.openecomp.aai - ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - ================================================================================ - 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. - ============LICENSE_END========================================================= - --> - -<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.openecomp.org.v9" xml-mapping-metadata-complete="true"> - <xml-schema element-form-default="QUALIFIED"> - <xml-ns namespace-uri="http://org.openecomp.aai.inventory/v9" /> - </xml-schema> - <java-types> - <java-type name="Inventory"> - <xml-root-element name="inventory" /> - <java-attributes> - <xml-element java-attribute="search" name="search" type="inventory.aai.openecomp.org.v9.Search" /> - <xml-element java-attribute="actions" name="actions" type="inventory.aai.openecomp.org.v9.Actions" /> - <xml-element java-attribute="cloudInfrastructure" name="cloud-infrastructure" type="inventory.aai.openecomp.org.v9.CloudInfrastructure" /> - <xml-element java-attribute="business" name="business" type="inventory.aai.openecomp.org.v9.Business" /> - <xml-element java-attribute="serviceDesignAndCreation" name="service-design-and-creation" type="inventory.aai.openecomp.org.v9.ServiceDesignAndCreation" /> - <xml-element java-attribute="network" name="network" type="inventory.aai.openecomp.org.v9.Network" /> - <xml-element java-attribute="aaiInternal" name="aai-internal" type="inventory.aai.openecomp.org.v9.AaiInternal" /> - <xml-element java-attribute="nodes" name="nodes" type="inventory.aai.openecomp.org.v9.Nodes"/> - </java-attributes> - </java-type> - - <java-type name="Nodes"> - <xml-root-element name="nodes" /> - </java-type> - <java-type name="Search"> - <xml-root-element name="search" /> - <java-attributes> - <xml-element java-attribute="edgeTagQueryResult" name="edge-tag-query-result" type="inventory.aai.openecomp.org.v9.EdgeTagQueryResult" /> - <xml-element java-attribute="edgeTagQueryRequest" name="edge-tag-query-request" type="inventory.aai.openecomp.org.v9.EdgeTagQueryRequest" /> - <xml-element java-attribute="searchResults" name="search-results" type="inventory.aai.openecomp.org.v9.SearchResults" /> - <xml-element java-attribute="sdnZoneResponse" name="sdn-zone-response" type="inventory.aai.openecomp.org.v9.SdnZoneResponse" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryResult"> - <xml-root-element name="edge-tag-query-result" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.openecomp.org.v9.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="TaggedInventoryItemList"> - <xml-root-element name="tagged-inventory-item-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItem" name="inventory-item" type="inventory.aai.openecomp.org.v9.InventoryItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItem"> - <xml-root-element name="inventory-item" /> - <java-attributes> - <xml-element java-attribute="inventoryItemType" name="inventory-item-type" type="java.lang.String" /> - <xml-element java-attribute="inventoryItemLink" name="inventory-item-link" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItemData" name="inventory-item-data" type="inventory.aai.openecomp.org.v9.InventoryItemData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.openecomp.org.v9.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItemData"> - <xml-root-element name="inventory-item-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryRequest"> - <xml-root-element name="edge-tag-query-request" /> - <java-attributes> - <xml-element java-attribute="edgeTag" name="edge-tag" type="java.lang.String" /> - <xml-element java-attribute="resultDetail" name="result-detail" type="java.lang.String" /> - <xml-element java-attribute="startNodeType" name="start-node-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="startNodeFilter" name="start-node-filter" type="inventory.aai.openecomp.org.v9.StartNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="includeNodeFilter" name="include-node-filter" type="inventory.aai.openecomp.org.v9.IncludeNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilter" name="secondary-filter" type="inventory.aai.openecomp.org.v9.SecondaryFilter" /> - </java-attributes> - </java-type> - - <java-type name="StartNodeFilter"> - <xml-root-element name="start-node-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="IncludeNodeFilter"> - <xml-root-element name="include-node-filter" /> - <java-attributes> - <xml-element java-attribute="includeNodeType" name="include-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilter"> - <xml-root-element name="secondary-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="filterType" name="filter-type" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SearchResults"> - <xml-root-element name="search-results" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="resultData" name="result-data" type="inventory.aai.openecomp.org.v9.ResultData" /> - </java-attributes> - </java-type> - - <java-type name="ResultData"> - <xml-root-element name="result-data" /> - <java-attributes> - <xml-element java-attribute="resourceType" name="resource-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The specific type of node in the A&AI graph" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceLink" name="resource-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The URL to the specific resource" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="SdnZoneResponse"> - <xml-root-element name="sdn-zone-response" /> - <java-attributes> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.openecomp.org.v9.OamNetworks" /> - <xml-element container-type="java.util.ArrayList" java-attribute="azAndDvsSwitches" name="az-and-dvs-switches" type="inventory.aai.openecomp.org.v9.AzAndDvsSwitches" /> - </java-attributes> - </java-type> - - <java-type name="AzAndDvsSwitches"> - <xml-root-element name="az-and-dvs-switches" /> - <java-attributes> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.openecomp.org.v9.DvsSwitches" /> - <xml-element java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.openecomp.org.v9.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="Actions"> - <xml-properties> - <xml-property name="description" value="APIs that are more action related than REST (e.g., notify, update)." /> - </xml-properties> - <xml-root-element name="actions" /> - <java-attributes> - <xml-element java-attribute="update" name="update" type="inventory.aai.openecomp.org.v9.Update" /> - <xml-element java-attribute="notify" name="notify" type="inventory.aai.openecomp.org.v9.Notify" /> - </java-attributes> - </java-type> - - <java-type name="Update"> - <xml-properties> - <xml-property name="description" value="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team." /> - </xml-properties> - <xml-root-element name="update" /> - <java-attributes> - <xml-element java-attribute="updateNodeType" name="update-node-type" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="updateNodeKey" name="update-node-key" type="inventory.aai.openecomp.org.v9.UpdateNodeKey" /> - <xml-element java-attribute="updateNodeUri" name="update-node-uri" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="action" name="action" type="inventory.aai.openecomp.org.v9.Action" /> - </java-attributes> - </java-type> - - <java-type name="Action"> - <xml-root-element name="action" /> - <java-attributes> - <xml-element java-attribute="actionType" name="action-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="actionData" name="action-data" type="inventory.aai.openecomp.org.v9.ActionData" /> - </java-attributes> - </java-type> - - <java-type name="ActionData"> - <xml-root-element name="action-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="UpdateNodeKey"> - <xml-root-element name="update-node-key" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Notify"> - <xml-root-element name="notify" /> - <java-attributes> - <xml-element java-attribute="eventId" name="event-id" required="true" type="java.lang.String" /> - <xml-element java-attribute="nodeType" name="node-type" type="java.lang.String" /> - <xml-element java-attribute="eventTrigger" name="event-trigger" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="keyData" name="key-data" type="inventory.aai.openecomp.org.v9.KeyData" /> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="KeyData"> - <xml-root-element name="key-data" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="CloudInfrastructure"> - <xml-properties> - <xml-property name="description" value="Namespace for cloud infrastructure." /> - </xml-properties> - <xml-root-element name="cloud-infrastructure" /> - <java-attributes> - <xml-element java-attribute="complexes" name="complexes" type="inventory.aai.openecomp.org.v9.Complexes" /> - <xml-element java-attribute="cloudRegions" name="cloud-regions" type="inventory.aai.openecomp.org.v9.CloudRegions" /> - <xml-element java-attribute="networkProfiles" name="network-profiles" type="inventory.aai.openecomp.org.v9.NetworkProfiles" /> - <xml-element java-attribute="pservers" name="pservers" type="inventory.aai.openecomp.org.v9.Pservers" /> - <xml-element java-attribute="virtualDataCenters" name="virtual-data-centers" type="inventory.aai.openecomp.org.v9.VirtualDataCenters" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegions"> - <xml-root-element name="cloud-regions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cloudRegion" name="cloud-region" type="inventory.aai.openecomp.org.v9.CloudRegion" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="CloudRegion"> - <xml-root-element name="cloud-region" /> - <java-attributes> - <xml-element java-attribute="cloudOwner" name="cloud-owner" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionId" name="cloud-region-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifier used by the vendor for the region. Second part of composite key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudType" name="cloud-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the cloud (e.g., openstack)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ownerDefinedType" name="owner-defined-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Cloud-owner defined type indicator (e.g., dcp, lcp)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionVersion" name="cloud-region-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudZone" name="cloud-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroups" name="volume-groups" type="inventory.aai.openecomp.org.v9.VolumeGroups" /> - <xml-element java-attribute="tenants" name="tenants" type="inventory.aai.openecomp.org.v9.Tenants" /> - <xml-element java-attribute="flavors" name="flavors" type="inventory.aai.openecomp.org.v9.Flavors" /> - <xml-element java-attribute="groupAssignments" name="group-assignments" type="inventory.aai.openecomp.org.v9.GroupAssignments" /> - <xml-element java-attribute="snapshots" name="snapshots" type="inventory.aai.openecomp.org.v9.Snapshots" /> - <xml-element java-attribute="images" name="images" type="inventory.aai.openecomp.org.v9.Images" /> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.openecomp.org.v9.DvsSwitches" /> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.openecomp.org.v9.OamNetworks" /> - <xml-element java-attribute="availabilityZones" name="availability-zones" type="inventory.aai.openecomp.org.v9.AvailabilityZones" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC." /> - <xml-property name="indexedProps" value="cloud-owner,cloud-region-id,cloud-type,owner-defined-type" /> - <xml-property name="nameProps" value="owner-defined-type" /> - <xml-property name="container" value="cloud-regions" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - <java-type name="VolumeGroups"> - <xml-properties> - <xml-property name="description" value="Collection of persistent block-level storage." /> - </xml-properties> - <xml-root-element name="volume-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volumeGroup" name="volume-group" type="inventory.aai.openecomp.org.v9.VolumeGroup" /> - </java-attributes> - </java-type> - - <java-type name="VolumeGroup"> - <xml-root-element name="volume-group" /> - <java-attributes> - <xml-element java-attribute="volumeGroupId" name="volume-group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of volume-group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroupName" name="volume-group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the volume group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelCustomizationId" name="persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - <xml-property name="dbAlias" value="model-customization-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModulePersonaModelCustomizationId" name="vf-module-persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="helps relate the volume group to the vf-module whose components will require the volume group" /> - <xml-property name="dbAlias" value="vf-module-model-customization-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persistent block-level storage." /> - <xml-property name="indexedProps" value="volume-group-name,vnf-type,heat-stack-id,volume-group-id" /> - <xml-property name="searchable" value="volume-group-id,volume-group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="volume-groups" /> - </xml-properties> - </java-type> - - <java-type name="RelationshipList"> - <xml-root-element name="relationship-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.openecomp.org.v9.Relationship" /> - </java-attributes> - </java-type> - - <java-type name="Relationship"> - <xml-root-element name="relationship" /> - <java-attributes> - <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate type of node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to the object in A&AI." /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.openecomp.org.v9.RelationshipData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.openecomp.org.v9.RelatedToProperty" /> - </java-attributes> - </java-type> - - <java-type name="RelatedToProperty"> - <xml-root-element name="related-to-property" /> - <java-attributes> - <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Key part of a key/value pair" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value part of a key/value pair" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="RelationshipData"> - <xml-root-element name="relationship-data" /> - <java-attributes> - <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate an attribute." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value of the attribute." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="Complexes"> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - </xml-properties> - <xml-root-element name="complexes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="complex" name="complex" type="inventory.aai.openecomp.org.v9.Complex" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Complex"> - <xml-root-element name="complex" /> - <java-attributes> - <xml-element java-attribute="physicalLocationId" name="physical-location-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for physical location, e.g., CLLI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dataCenterCode" name="data-center-code" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Data center code which can be an alternate way to identify a complex" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gamma complex name for LCP instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalLocationType" name="physical-location-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type, e.g., central office, data center." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="street1" name="street1" required="true" type="java.lang.String" /> - <xml-element java-attribute="street2" name="street2" type="java.lang.String" /> - <xml-element java-attribute="city" name="city" required="true" type="java.lang.String" /> - <xml-element java-attribute="state" name="state" type="java.lang.String" /> - <xml-element java-attribute="postalCode" name="postal-code" required="true" type="java.lang.String" /> - <xml-element java-attribute="country" name="country" required="true" type="java.lang.String" /> - <xml-element java-attribute="region" name="region" required="true" type="java.lang.String" /> - <xml-element java-attribute="latitude" name="latitude" type="java.lang.String" /> - <xml-element java-attribute="longitude" name="longitude" type="java.lang.String" /> - <xml-element java-attribute="elevation" name="elevation" type="java.lang.String" /> - <xml-element java-attribute="lata" name="lata" type="java.lang.String" /> - <xml-element java-attribute="ctagPools" name="ctag-pools" type="inventory.aai.openecomp.org.v9.CtagPools" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - <xml-property name="indexedProps" value="identity-url,data-center-code,complex-name,physical-location-id" /> - <xml-property name="searchable" value="physical-location-id,data-center-code,complex-name,street1,street2,postal-code" /> - <xml-property name="uniqueProps" value="physical-location-id" /> - <xml-property name="container" value="complexes" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="CtagPools"> - <xml-root-element name="ctag-pools" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagPool" name="ctag-pool" type="inventory.aai.openecomp.org.v9.CtagPool" /> - </java-attributes> - </java-type> - - <java-type name="CtagPool"> - <xml-root-element name="ctag-pool" /> - <java-attributes> - <xml-element java-attribute="targetPe" name="target-pe" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="The Target provider edge router" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagPoolPurpose" name="ctag-pool-purpose" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Describes what the intended purpose of this pool is." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagValues" name="ctag-values" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Comma separated list of ctags" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A collection of C tags (vlan tags) grouped for a specific purpose." /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="complex" /> - <xml-property name="container" value="ctag-pools" /> - </xml-properties> - </java-type> - - <java-type name="Tenants"> - <xml-properties> - <xml-property name="description" value="Collection of openstack tenants." /> - </xml-properties> - <xml-root-element name="tenants" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tenant" name="tenant" type="inventory.aai.openecomp.org.v9.Tenant" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Tenant"> - <xml-root-element name="tenant" /> - <java-attributes> - <xml-element java-attribute="tenantId" name="tenant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id relative to the cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tenantName" name="tenant-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Readable name of tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vservers" name="vservers" type="inventory.aai.openecomp.org.v9.Vservers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack tenant" /> - <xml-property name="nameProps" value="tenant-name" /> - <xml-property name="indexedProps" value="tenant-name,tenant-id" /> - <xml-property name="searchable" value="tenant-id,tenant-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="tenants" /> - </xml-properties> - </java-type> - - <java-type name="Vservers"> - <xml-properties> - <xml-property name="description" value="Collection of virtual Servers, aka virtual machines or VMs." /> - </xml-properties> - <xml-root-element name="vservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vserver" name="vserver" type="inventory.aai.openecomp.org.v9.Vserver" /> - </java-attributes> - </java-type> - - <java-type name="Vserver"> - <xml-root-element name="vserver" /> - <java-attributes> - <xml-element java-attribute="vserverId" name="vserver-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for this vserver relative to its tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName" name="vserver-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName2" name="vserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternative name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverSelflink" name="vserver-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumes" name="volumes" type="inventory.aai.openecomp.org.v9.Volumes" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Servers, aka virtual machine or VM." /> - <xml-property name="nameProps" value="vserver-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2" /> - <xml-property name="searchable" value="vserver-id,vserver-name,vserver-name2" /> - <xml-property name="dependentOn" value="tenant" /> - <xml-property name="container" value="vservers" /> - </xml-properties> - </java-type> - - <java-type name="LInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of logical interfaces." /> - </xml-properties> - <xml-root-element name="l-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.openecomp.org.v9.LInterface" /> - </java-attributes> - </java-type> - - <java-type name="LInterface"> - <xml-root-element name="l-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name given to the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MAC address for the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Human friendly text regarding this interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.openecomp.org.v9.Vlans" /> - <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.openecomp.org.v9.SriovVfs" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.openecomp.org.v9.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.openecomp.org.v9.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical interfaces, e.g., a vnic." /> - <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name" /> - <xml-property name="dependentOn" value="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface" /> - <xml-property name="container" value="l-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="SriovVfs"> - <xml-properties> - <xml-property name="description" value="Collection of SR-IOV Virtual Functions." /> - </xml-properties> - <xml-root-element name="sriov-vfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sriovVf" name="sriov-vf" type="inventory.aai.openecomp.org.v9.SriovVf" /> - </java-attributes> - </java-type> - <java-type name="SriovVf"> - <xml-root-element name="sriov-vf" /> - <java-attributes> - <xml-element java-attribute="pciId" name="pci-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="PCI ID used to identify the sriov-vf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanFilter" name="vf-vlan-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacFilter" name="vf-mac-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanStrip" name="vf-vlan-strip" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanAntiSpoofCheck" name="vf-vlan-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacAntiSpoofCheck" name="vf-mac-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMirrors" name="vf-mirrors" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfBroadcastAllow" name="vf-broadcast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownMulticastAllow" name="vf-unknown-multicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownUnicastAllow" name="vf-unknown-unicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfInsertStag" name="vf-insert-stag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, instructs to insert outer tag after traffic comes out of VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfLinkStatus" name="vf-link-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option is used to set the link status. Valid values as of 1607 are on, off, and auto." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="SR-IOV Virtual Function (not to be confused with virtual network function)" /> - <xml-property name="indexedProps" value="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="sriov-vfs" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv4AddressList"> - <xml-root-element name="l3-interface-ipv4-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 32 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv4 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Vlans"> - <xml-root-element name="vlans" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.openecomp.org.v9.Vlan" /> - </java-attributes> - </java-type> - - <java-type name="Vlan"> - <xml-root-element name="vlan" /> - <java-attributes> - <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String that identifies the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to describe (the service associated with) the vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnId" name="vpn-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan" /> - <xml-property name="dbAlias" value="vpn-id-local" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.openecomp.org.v9.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.openecomp.org.v9.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Definition of vlan" /> - <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-id" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="vlans" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv6AddressList"> - <xml-root-element name="l3-interface-ipv6-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 128 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv6 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Volumes"> - <xml-properties> - <xml-property name="description" value="Collection of ephemeral Block storage volumes." /> - </xml-properties> - <xml-root-element name="volumes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volume" name="volume" type="inventory.aai.openecomp.org.v9.Volume" /> - </java-attributes> - </java-type> - - <java-type name="Volume"> - <xml-root-element name="volume" /> - <java-attributes> - <xml-element java-attribute="volumeId" name="volume-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of block storage volume relative to the vserver." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeSelflink" name="volume-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Ephemeral Block storage volume." /> - <xml-property name="indexedProps" value="volume-id" /> - <xml-property name="dependentOn" value="vserver" /> - <xml-property name="container" value="volumes" /> - </xml-properties> - </java-type> - - <java-type name="Flavors"> - <xml-properties> - <xml-property name="description" value="Collection of openstack flavors." /> - </xml-properties> - <xml-root-element name="flavors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="flavor" name="flavor" type="inventory.aai.openecomp.org.v9.Flavor" /> - </java-attributes> - </java-type> - - <java-type name="Flavor"> - <xml-root-element name="flavor" /> - <java-attributes> - <xml-element java-attribute="flavorId" name="flavor-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Flavor id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorName" name="flavor-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Flavor name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorVcpus" name="flavor-vcpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of CPUs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorRam" name="flavor-ram" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of memory" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisk" name="flavor-disk" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorEphemeral" name="flavor-ephemeral" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of ephemeral disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSwap" name="flavor-swap" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="amount of swap space allocation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorIsPublic" name="flavor-is-public" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="whether flavor is available to all users or private to the tenant it was created in." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSelflink" name="flavor-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisabled" name="flavor-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Boolean as to whether this flavor is no longer enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack flavor." /> - <xml-property name="nameProps" value="flavor-name" /> - <xml-property name="indexedProps" value="flavor-name,flavor-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="flavors" /> - </xml-properties> - </java-type> - - <java-type name="Snapshots"> - <xml-properties> - <xml-property name="description" value="Collection of openstack snapshots" /> - </xml-properties> - <xml-root-element name="snapshots" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="snapshot" name="snapshot" type="inventory.aai.openecomp.org.v9.Snapshot" /> - </java-attributes> - </java-type> - - <java-type name="Snapshot"> - <xml-root-element name="snapshot" /> - <java-attributes> - <xml-element java-attribute="snapshotId" name="snapshot-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Snapshot id, this is the key UUID assoc associated in glance with the snapshots." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotName" name="snapshot-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Snapshot name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotArchitecture" name="snapshot-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsDistro" name="snapshot-os-distro" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsVersion" name="snapshot-os-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotSelflink" name="snapshot-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="prevSnapshotId" name="prev-snapshot-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field contains the UUID of the previous snapshot (if any)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack snapshot" /> - <xml-property name="nameProps" value="snapshot-name" /> - <xml-property name="uniqueProps" value="snapshot-id" /> - <xml-property name="indexedProps" value="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="snapshots" /> - </xml-properties> - </java-type> - - <java-type name="GroupAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack group assignments" /> - </xml-properties> - <xml-root-element name="group-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="groupAssignment" name="group-assignment" type="inventory.aai.openecomp.org.v9.GroupAssignment" /> - </java-attributes> - </java-type> - - <java-type name="GroupAssignment"> - <xml-root-element name="group-assignment" /> - <java-attributes> - <xml-element java-attribute="groupId" name="group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Group id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupType" name="group-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group type - the type of group this instance refers to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupName" name="group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name - name assigned to the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupDescription" name="group-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group description - description of the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack group-assignment used to store exclusivity groups (EG)." /> - <xml-property name="nameProps" value="group-name" /> - <xml-property name="indexedProps" value="group-id,group-type,group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="group-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Images"> - <xml-properties> - <xml-property name="description" value="Collectio of Openstack images." /> - </xml-properties> - <xml-root-element name="images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="image" name="image" type="inventory.aai.openecomp.org.v9.Image" /> - </java-attributes> - </java-type> - - <java-type name="Image"> - <xml-root-element name="image" /> - <java-attributes> - <xml-element java-attribute="imageId" name="image-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Image id, expected to be unique across cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageName" name="image-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Image name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageArchitecture" name="image-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsDistro" name="image-os-distro" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsVersion" name="image-os-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageSelflink" name="image-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v9.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack image." /> - <xml-property name="nameProps" value="image-name" /> - <xml-property name="indexedProps" value="application,image-name,application-vendor,image-id,application-version" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="images" /> - </xml-properties> - </java-type> - - <java-type name="Metadata"> - <xml-properties> - <xml-property name="description" value="Collection of metadatum (key/value pairs)" /> - </xml-properties> - <xml-root-element name="metadata" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.openecomp.org.v9.Metadatum" /> - </java-attributes> - </java-type> - - <java-type name="Metadatum"> - <xml-root-element name="metadatum" /> - <java-attributes> - <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Key/value pairs" /> - <xml-property name="indexedProps" value="metaname" /> - <xml-property name="dependentOn" value="tenant,image,service-instance,connector,model" /> - <xml-property name="container" value="metadata" /> - </xml-properties> - </java-type> - - <java-type name="DvsSwitches"> - <xml-properties> - <xml-property name="description" value="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs." /> - </xml-properties> - <xml-root-element name="dvs-switches" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="dvsSwitch" name="dvs-switch" type="inventory.aai.openecomp.org.v9.DvsSwitch" /> - </java-attributes> - </java-type> - - <java-type name="DvsSwitch"> - <xml-root-element name="dvs-switch" /> - <java-attributes> - <xml-element java-attribute="switchName" name="switch-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="DVS switch name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcenterUrl" name="vcenter-url" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL used to reach the vcenter" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. " /> - <xml-property name="indexedProps" value="vcenter-url,switch-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="dvs-switches" /> - </xml-properties> - </java-type> - - <java-type name="NetworkProfiles"> - <xml-properties> - <xml-property name="description" value="Collection of network profiles" /> - </xml-properties> - <xml-root-element name="network-profiles" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkProfile" name="network-profile" type="inventory.aai.openecomp.org.v9.NetworkProfile" /> - </java-attributes> - </java-type> - - <java-type name="NetworkProfile"> - <xml-root-element name="network-profile" /> - <java-attributes> - <xml-element java-attribute="nmProfileName" name="nm-profile-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique name of network profile." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="communityString" name="community-string" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted SNMP community string" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Network profile populated by SDN-GP for SNMP" /> - <xml-property name="indexedProps" value="nm-profile-name" /> - <xml-property name="container" value="network-profiles" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="Pservers"> - <xml-properties> - <xml-property name="description" value="Collection of compute hosts." /> - </xml-properties> - <xml-root-element name="pservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pserver" name="pserver" type="inventory.aai.openecomp.org.v9.Pserver" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Pserver"> - <xml-root-element name="pserver" /> - <java-attributes> - <xml-element java-attribute="hostname" name="hostname" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value from executing hostname on the compute node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ptniiEquipName" name="ptnii-equip-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="PTNII name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="numberOfCpus" name="number-of-cpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of cpus" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="diskInGigabytes" name="disk-in-gigabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk size, in GBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ramInMegabytes" name="ram-in-megabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="RAM size, in MBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="fqdn" name="fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Fully-qualified domain name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverSelflink" name="pserver-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to configure device, also used for troubleshooting and is IP used for traps generated by device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number, may be queried" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 OAM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverId" name="pserver-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of Pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="internetTopology" name="internet-topology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="internet topology of Pserver" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverName2" name="pserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="alternative pserver name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="purpose of pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v9.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver." /> - <xml-property name="nameProps" value="pserver-name2" /> - <xml-property name="indexedProps" value="hostname,in-maint,pserver-id,pserver-name2,inv-status" /> - <xml-property name="searchable" value="hostname,pserver-name2,pserver-id,ipv4-oam-address" /> - <xml-property name="container" value="pservers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="PInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of physical interfaces." /> - </xml-properties> - <xml-root-element name="p-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.openecomp.org.v9.PInterface" /> - </java-attributes> - </java-type> - - <java-type name="PInterface"> - <xml-root-element name="p-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the physical interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nature of the services and connectivity on this port." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CLEI or other specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the physical properties of the interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Physical interface (e.g., nic)" /> - <xml-property name="indexedProps" value="interface-name,prov-status" /> - <xml-property name="nameProps" value="prov-status" /> - <xml-property name="dependentOn" value="vpls-pe,pserver,pnf" /> - <xml-property name="container" value="p-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="LagInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregate interfaces." /> - </xml-properties> - <xml-root-element name="lag-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.openecomp.org.v9.LagInterface" /> - </java-attributes> - </java-type> - - <java-type name="LagInterface"> - <xml-root-element name="lag-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the link aggregate interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Human friendly text regarding this interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Link aggregate interface" /> - <xml-property name="indexedProps" value="interface-name,interface-id,interface-role" /> - <xml-property name="dependentOn" value="generic-vnf,pserver,vpe,vpls-pe,pnf" /> - <xml-property name="container" value="lag-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="OamNetworks"> - <xml-properties> - <xml-property name="description" value="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. " /> - </xml-properties> - <xml-root-element name="oam-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="oamNetwork" name="oam-network" type="inventory.aai.openecomp.org.v9.OamNetwork" /> - </java-attributes> - </java-type> - - <java-type name="OamNetwork"> - <xml-root-element name="oam-network" /> - <java-attributes> - <xml-element java-attribute="networkUuid" name="network-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of the network. Unique across a cloud-region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="cvlan-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="OAM network, to be deprecated shortly. Do not use for new purposes. " /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="cvlan-tag,network-uuid,network-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="oam-networks" /> - </xml-properties> - </java-type> - - <java-type name="AvailabilityZones"> - <xml-properties> - <xml-property name="description" value="Collection of availability zones" /> - </xml-properties> - <xml-root-element name="availability-zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.openecomp.org.v9.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="AvailabilityZone"> - <xml-root-element name="availability-zone" /> - <java-attributes> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone. Unique across a cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hypervisorType" name="hypervisor-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of hypervisor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values." /> - <xml-property name="dbAlias" value="operational-status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Availability zone, a collection of compute hosts/pservers" /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="availability-zones" /> - </xml-properties> - </java-type> - - <java-type name="VirtualDataCenters"> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - </xml-properties> - <xml-root-element name="virtual-data-centers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="virtualDataCenter" name="virtual-data-center" type="inventory.aai.openecomp.org.v9.VirtualDataCenter" /> - </java-attributes> - </java-type> - - <java-type name="VirtualDataCenter"> - <xml-root-element name="virtual-data-center" /> - <java-attributes> - <xml-element java-attribute="vdcId" name="vdc-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the vdc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdcName" name="vdc-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the virtual data center" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - <xml-property name="nameProps" value="vdc-name" /> - <xml-property name="indexedProps" value="vdc-name,vdc-id" /> - <xml-property name="container" value="virtual-data-centers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - - - - <java-type name="Business"> - <xml-properties> - <xml-property name="description" value="Namespace for business related constructs" /> - </xml-properties> - <xml-root-element name="business" /> - <java-attributes> - <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.openecomp.org.v9.Connectors" /> - <xml-element java-attribute="customers" name="customers" type="inventory.aai.openecomp.org.v9.Customers" /> - </java-attributes> - </java-type> - - <java-type name="Connectors"> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - </xml-properties> - <xml-root-element name="connectors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.openecomp.org.v9.Connector" /> - </java-attributes> - </java-type> - - <java-type name="Connector"> - <xml-root-element name="connector" /> - <java-attributes> - <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of resource instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v9.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - <xml-property name="indexedProps" value="resource-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version" /> - <xml-property name="container" value="connectors" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="Customers"> - <xml-properties> - <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." /> - </xml-properties> - <xml-root-element name="customers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.openecomp.org.v9.Customer" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Customer"> - <xml-root-element name="customer" /> - <java-attributes> - <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." /> - <xml-property name="defaultValue" value="CUST" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.openecomp.org.v9.ServiceSubscriptions" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." /> - <xml-property name="nameProps" value="subscriber-name" /> - <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" /> - <xml-property name="searchable" value="global-customer-id,subscriber-name" /> - <xml-property name="uniqueProps" value="global-customer-id" /> - <xml-property name="container" value="customers" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="ServiceSubscriptions"> - <xml-properties> - <xml-property name="description" value="Collection of objects that group service instances." /> - </xml-properties> - <xml-root-element name="service-subscriptions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.openecomp.org.v9.ServiceSubscription" /> - </java-attributes> - </java-type> - - <java-type name="ServiceSubscription"> - <xml-root-element name="service-subscription" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This property will be deleted from A&AI in the near future. Only stop gap solution." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.openecomp.org.v9.ServiceInstances"> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Object that group service instances." /> - <xml-property name="indexedProps" value="service-type" /> - <xml-property name="dependentOn" value="customer" /> - <xml-property name="container" value="service-subscriptions" /> - <xml-property name="crossEntityReference" value="service-instance,service-type" /> - </xml-properties> - </java-type> - - <java-type name="ServiceInstances"> - <xml-properties> - <xml-property name="description" value="Collection of service instances" /> - </xml-properties> - <xml-root-element name="service-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.openecomp.org.v9.ServiceInstance" /> - </java-attributes> - </java-type> - - <java-type name="ServiceInstance"> - <xml-root-element name="service-instance" /> - <java-attributes> - <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Uniquely identifies this instance of a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store a name assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the total bandwidth to be used for this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL customers will use to access the vHN Portal." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v9.Metadata" /> - <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.openecomp.org.v9.AllottedResources" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Instance of a service" /> - <xml-property name="indexedProps" value="service-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status" /> - <xml-property name="nameProps" value="service-instance-name" /> - <xml-property name="searchable" value="service-instance-id,service-instance-name" /> - <xml-property name="uniqueProps" value="service-instance-id" /> - <xml-property name="dependentOn" value="service-subscription" /> - <xml-property name="container" value="service-instances" /> - </xml-properties> - </java-type> - - <java-type name="ServiceDesignAndCreation"> - <xml-properties> - <xml-property name="description" value="Namespace for objects managed by ASDC" /> - </xml-properties> - <xml-root-element name="service-design-and-creation" /> - <java-attributes> - <xml-element java-attribute="vnfImages" name="vnf-images" type="inventory.aai.openecomp.org.v9.VnfImages" /> - <xml-element java-attribute="services" name="services" type="inventory.aai.openecomp.org.v9.Services" /> - <xml-element java-attribute="serviceCapabilities" name="service-capabilities" type="inventory.aai.openecomp.org.v9.ServiceCapabilities" /> - <xml-element java-attribute="models" name="models" type="inventory.aai.openecomp.org.v9.Models" /> - <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.openecomp.org.v9.NamedQueries" /> - </java-attributes> - </java-type> - - <java-type name="VnfImages"> - <xml-properties> - <xml-property name="description" value="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - </xml-properties> - <xml-root-element name="vnf-images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfImage" name="vnf-image" type="inventory.aai.openecomp.org.v9.VnfImage" /> - </java-attributes> - </java-type> - - <java-type name="VnfImage"> - <xml-root-element name="vnf-image" /> - <java-attributes> - <xml-element java-attribute="vnfImageUuid" name="vnf-image-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of this asset" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - <xml-property name="indexedProps" value="application,vnf-image-uuid,application-vendor,application-version" /> - <xml-property name="uniqueProps" value="vnf-image-uuid" /> - <xml-property name="container" value="vnf-images" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Services"> - <xml-properties> - <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC." /> - </xml-properties> - <xml-root-element name="services" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.openecomp.org.v9.Service" /> - </java-attributes> - </java-type> - - <java-type name="Service"> - <xml-root-element name="service" /> - <java-attributes> - <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description of the service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services." /> - <xml-property name="indexedProps" value="service-description,service-id" /> - <xml-property name="container" value="services" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="ServiceCapabilities"> - <xml-properties> - <xml-property name="description" value="Collection of service capabilities." /> - </xml-properties> - <xml-root-element name="service-capabilities" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceCapability" name="service-capability" type="inventory.aai.openecomp.org.v9.ServiceCapability" /> - </java-attributes> - </java-type> - - <java-type name="ServiceCapability"> - <xml-root-element name="service-capability" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this." /> - <xml-property name="indexedProps" value="service-type,vnf-type" /> - <xml-property name="container" value="service-capabilities" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Network"> - <xml-properties> - <xml-property name="description" value="Namespace for network inventory resources." /> - </xml-properties> - <xml-root-element name="network" /> - <java-attributes> - <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.openecomp.org.v9.LogicalLinks" /> - <xml-element java-attribute="sitePairSets" name="site-pair-sets" type="inventory.aai.openecomp.org.v9.SitePairSets" /> - <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.openecomp.org.v9.VpnBindings" /> - <xml-element java-attribute="vplsPes" name="vpls-pes" type="inventory.aai.openecomp.org.v9.VplsPes" /> - <xml-element java-attribute="multicastConfigurations" name="multicast-configurations" type="inventory.aai.openecomp.org.v9.MulticastConfigurations" /> - <xml-element java-attribute="vces" name="vces" type="inventory.aai.openecomp.org.v9.Vces" /> - <xml-element java-attribute="vpes" name="vpes" type="inventory.aai.openecomp.org.v9.Vpes" /> - <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.openecomp.org.v9.Vnfcs" /> - <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.openecomp.org.v9.L3Networks" /> - <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.openecomp.org.v9.NetworkPolicies" /> - <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.openecomp.org.v9.GenericVnfs" /> - <xml-element java-attribute="lagLinks" name="lag-links" type="inventory.aai.openecomp.org.v9.LagLinks" /> - <xml-element java-attribute="newvces" name="newvces" type="inventory.aai.openecomp.org.v9.Newvces" /> - <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.openecomp.org.v9.Pnfs" /> - <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.openecomp.org.v9.PhysicalLinks" /> - <xml-element java-attribute="ipsecConfigurations" name="ipsec-configurations" type="inventory.aai.openecomp.org.v9.IpsecConfigurations" /> - <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.openecomp.org.v9.RouteTableReferences" /> - <xml-element java-attribute="instanceGroups" name="instance-groups" type="inventory.aai.openecomp.org.v9.InstanceGroups" /> - <xml-element java-attribute="zones" name="zones" type="inventory.aai.openecomp.org.v9.Zones" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of logical connections" /> - </xml-properties> - <xml-root-element name="logical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.openecomp.org.v9.LogicalLink" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLink"> - <xml-root-element name="logical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of logical link, e.g., evc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4, v6, or ds for dual stack" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="For example, static or BGP" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of operational status of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of the network use of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkId" name="link-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the logical-link, SDNC generates this." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Reason for this entity, role it is playing" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" /> - <xml-property name="indexedProps" value="link-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose" /> - <xml-property name="uniqueProps" value="link-id" /> - <xml-property name="container" value="logical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name" /> - </xml-properties> - </java-type> - - <java-type name="SitePairSets"> - <xml-properties> - <xml-property name="description" value="Collection of sets of instances for probes related to generic-vnf" /> - </xml-properties> - <xml-root-element name="site-pair-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePairSet" name="site-pair-set" type="inventory.aai.openecomp.org.v9.SitePairSet" /> - </java-attributes> - </java-type> - - <java-type name="SitePairSet"> - <xml-root-element name="site-pair-set" /> - <java-attributes> - <xml-element java-attribute="sitePairSetId" name="site-pair-set-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of site pair set." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingInstances" name="routing-instances" type="inventory.aai.openecomp.org.v9.RoutingInstances" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Set of instances for probes used to measure service level agreements" /> - <xml-property name="indexedProps" value="site-pair-set-id" /> - <xml-property name="uniqueProps" value="site-pair-set-id" /> - <xml-property name="container" value="site-pair-sets" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="RoutingInstances"> - <xml-properties> - <xml-property name="description" value="set of probes related to generic-vnf routing instance" /> - </xml-properties> - <xml-root-element name="routing-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routingInstance" name="routing-instance" type="inventory.aai.openecomp.org.v9.RoutingInstance" /> - </java-attributes> - </java-type> - - <java-type name="RoutingInstance"> - <xml-root-element name="routing-instance" /> - <java-attributes> - <xml-element java-attribute="routingInstanceId" name="routing-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of routing instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpmOwner" name="rpm-owner" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rpm owner" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sitePairs" name="site-pairs" type="inventory.aai.openecomp.org.v9.SitePairs" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="routing-instance-id" /> - <xml-property name="uniqueProps" value="routing-instance-id" /> - <xml-property name="dependentOn" value="site-pair-set" /> - <xml-property name="container" value="routing-instances" /> - </xml-properties> - </java-type> - - <java-type name="SitePairs"> - <xml-properties> - <xml-property name="description" value="probe within a set" /> - </xml-properties> - <xml-root-element name="site-pairs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePair" name="site-pair" type="inventory.aai.openecomp.org.v9.SitePair" /> - </java-attributes> - </java-type> - - <java-type name="SitePair"> - <xml-root-element name="site-pair" /> - <java-attributes> - <xml-element java-attribute="sitePairId" name="site-pair-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceIp" name="source-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationIp" name="destination-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version, v4, v6" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationHostname" name="destination-hostname" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Hostname of the destination equipment to which SLAs are measured against." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationEquipType" name="destination-equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The type of destinatination equipment. Could be Router, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="classesOfService" name="classes-of-service" type="inventory.aai.openecomp.org.v9.ClassesOfService" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="site-pair-id" /> - <xml-property name="uniqueProps" value="site-pair-id" /> - <xml-property name="dependentOn" value="routing-instance" /> - <xml-property name="container" value="site-pairs" /> - </xml-properties> - </java-type> - - <java-type name="ClassesOfService"> - <xml-properties> - <xml-property name="description" value="class-of-service of probe" /> - </xml-properties> - <xml-root-element name="classes-of-service" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="classOfService" name="class-of-service" type="inventory.aai.openecomp.org.v9.ClassOfService" /> - </java-attributes> - </java-type> - - <java-type name="ClassOfService"> - <xml-root-element name="class-of-service" /> - <java-attributes> - <xml-element java-attribute="cos" name="cos" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeId" name="probe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeType" name="probe-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="cos" /> - <xml-property name="dependentOn" value="site-pair" /> - <xml-property name="container" value="classes-of-service" /> - </xml-properties> - </java-type> - - <java-type name="VpnBindings"> - <xml-root-element name="vpn-bindings" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpnBinding" name="vpn-binding" type="inventory.aai.openecomp.org.v9.VpnBinding" /> - </java-attributes> - </java-type> - - <java-type name="VpnBinding"> - <xml-root-element name="vpn-binding" /> - <java-attributes> - <xml-element java-attribute="vpnId" name="vpn-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="VPN ID, globally unique within A&AI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnName" name="vpn-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="VPN Name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="globalRouteTarget" name="global-route-target" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Number used to identify a VPN, globally unique in the network" /> - <xml-property name="dataLink" value="./route-targets/route-target/{global-route-target}/{route-target-role}" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnPlatform" name="vpn-platform" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the platform associated with the VPN example AVPN, Mobility" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnType" name="vpn-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the vpn, should be taken from enumerated/valid values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeDistinguisher" name="route-distinguisher" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTargetRole" name="route-target-role" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this route target" /> - <xml-property name="dataLink" value="./route-targets/route-target/{global-route-target}/{route-target-role}" /> - <xml-property name="defaultValue" value="BOTH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList"> - <xml-properties> - <xml-property name="description" value="l3-networks relate to vpn-bindings" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPN binding" /> - <xml-property name="nameProps" value="vpn-name,vpn-type" /> - <xml-property name="indexedProps" value="vpn-name,vpn-id,global-route-target,vpn-type" /> - <xml-property name="searchable" value="vpn-id,vpn-name" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="container" value="vpn-bindings" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="VplsPes"> - <xml-properties> - <xml-property name="description" value="Collection of VPLS Provider Edge routers" /> - </xml-properties> - <xml-root-element name="vpls-pes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vplsPe" name="vpls-pe" type="inventory.aai.openecomp.org.v9.VplsPe" /> - </java-attributes> - </java-type> - - <java-type name="VplsPe"> - <xml-root-element name="vpls-pe" /> - <java-attributes> - <xml-element java-attribute="equipmentName" name="equipment-name" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPLS-PE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v9.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPLS Provider Edge routers." /> - <xml-property name="indexedProps" value="prov-status,equipment-name" /> - <xml-property name="container" value="vpls-pes" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="MulticastConfigurations"> - <xml-properties> - <xml-property name="description" value="multicast configuration of generic-vnf ip-address" /> - </xml-properties> - <xml-root-element name="multicast-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="multicastConfiguration" name="multicast-configuration" type="inventory.aai.openecomp.org.v9.MulticastConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="MulticastConfiguration"> - <xml-root-element name="multicast-configuration" /> - <java-attributes> - <xml-element java-attribute="multicastConfigurationId" name="multicast-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of multicast configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="multicastProtocol" name="multicast-protocol" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="protocol of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpType" name="rp-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rp type of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="multicast-configuration-id" /> - <xml-property name="uniqueProps" value="multicast-configuration-id" /> - <xml-property name="container" value="multicast-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Vces"> - <xml-properties> - <xml-property name="description" value="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated." /> - </xml-properties> - <xml-root-element name="vces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vce" name="vce" type="inventory.aai.openecomp.org.v9.Vce" /> - </java-attributes> - </java-type> - - <java-type name="Vce"> - <xml-root-element name="vce" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - <xml-property name="dbAlias" value="operational-status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network role being played by this VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpeId" name="vpe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID of VPE connected to this VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6VceWanAddress" name="v6-vce-wan-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid v6 IP address for the WAN Link on this router. Implied length of /64." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - see child relationships" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroups" name="port-groups" type="inventory.aai.openecomp.org.v9.PortGroups" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.openecomp.org.v9.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.openecomp.org.v9.Entitlements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vces" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="PortGroups"> - <xml-root-element name="port-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="portGroup" name="port-group" type="inventory.aai.openecomp.org.v9.PortGroup" /> - </java-attributes> - </java-type> - - <java-type name="PortGroup"> - <xml-root-element name="port-group" /> - <java-attributes> - <xml-element java-attribute="interfaceId" name="interface-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkName" name="neutron-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network name of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupId" name="port-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID for port group in vmware" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupName" name="port-group-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Likely to duplicate value of neutron network name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="switchName" name="switch-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="DVS or standard switch name (should be non-null for port groups associated with DVS)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTags" name="cvlan-tags" type="inventory.aai.openecomp.org.v9.CvlanTags" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Used to capture the network interfaces of this VCE" /> - <xml-property name="nameProps" value="port-group-name" /> - <xml-property name="indexedProps" value="port-group-id,heat-stack-id,interface-id,interface-name,switch-name" /> - <xml-property name="dependentOn" value="vce" /> - <xml-property name="container" value="port-groups" /> - </xml-properties> - </java-type> - - <java-type name="CvlanTags"> - <xml-root-element name="cvlan-tags" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cvlanTagEntry" name="cvlan-tag-entry" type="inventory.aai.openecomp.org.v9.CvlanTagEntry" /> - </java-attributes> - </java-type> - - <java-type name="CvlanTagEntry"> - <xml-root-element name="cvlan-tag-entry" /> - <java-attributes> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="See mis-na-virtualization-platform.yang" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="dependentOn" value="port-group" /> - <xml-property name="indexedProps" value="cvlan-tag" /> - <xml-property name="container" value="cvlan-tags" /> - </xml-properties> - </java-type> - - <java-type name="Vpes"> - <xml-properties> - <xml-property name="description" value="Virtual provider edge router. In 1504, A&AI will populate this object through an M&P and tool provided to operations." /> - </xml-properties> - <xml-root-element name="vpes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpe" name="vpe" type="inventory.aai.openecomp.org.v9.Vpe" /> - </java-attributes> - </java-type> - - <java-type name="Vpe"> - <xml-root-element name="vpe" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - <xml-property name="dbAlias" value="operational-status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use. See child relationships." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Prefix length for oam-address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gateway address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v4Loopback0IpAddress" name="v4-loopback0-ip-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether vpe access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v9.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v9.LagInterfaces" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.openecomp.org.v9.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.openecomp.org.v9.Entitlements" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Relationship-list must include related to info for complex." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vpes" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="Vnfcs"> - <xml-properties> - <xml-property name="description" value="virtual network components associated with a vserver from application controller." /> - </xml-properties> - <xml-root-element name="vnfcs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.openecomp.org.v9.Vnfc" /> - </java-attributes> - </java-type> - - <java-type name="Vnfc"> - <xml-root-element name="vnfc" /> - <java-attributes> - <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vnfc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcFunctionCode" name="vnfc-function-code" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="function code" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcType" name="vnfc-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="prov status of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Oam V4 vip address of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group notation of VNFC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation" /> - <xml-property name="searchable" value="vnfc-name" /> - <xml-property name="container" value="vnfcs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="L3Networks"> - <xml-root-element name="l3-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.openecomp.org.v9.L3Network" /> - </java-attributes> - </java-type> - - <java-type name="L3Network"> - <xml-root-element name="l3-network" /> - <java-attributes> - <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Network ID, should be uuid. Unique across A&AI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network, governed by some naming convention.." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkType" name="network-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the network - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role the network plans - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network technology - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBoundToVpn" name="is-bound-to-vpn" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Set to true if bound to VPN" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="network role instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelCustomizationId" name="persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - <xml-property name="dbAlias" value="model-customization-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the physical network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a provider network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a shared network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is an external network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.openecomp.org.v9.Subnets" /> - <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.openecomp.org.v9.CtagAssignments" /> - <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.openecomp.org.v9.SegmentationAssignments" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" > - <xml-properties> - <xml-property name="description" value="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Generic network definition" /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-network-fqdn,network-role" /> - <xml-property name="searchable" value="network-id,network-name" /> - <xml-property name="uniqueProps" value="network-id" /> - <xml-property name="container" value="l3-networks" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="NetworkPolicies"> - <xml-root-element name="network-policies" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkPolicy" name="network-policy" type="inventory.aai.openecomp.org.v9.NetworkPolicy" /> - </java-attributes> - </java-type> - <java-type name="NetworkPolicy"> - <xml-root-element name="network-policy" /> - <java-attributes> - <xml-element java-attribute="networkPolicyId" name="network-policy-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID representing unique key to this instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkPolicyFqdn" name="network-policy-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the policy" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID for the openStack Heat instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="nameProps" value="network-policy-fqdn" /> - <xml-property name="indexedProps" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="searchable" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="uniqueProps" value="network-policy-id" /> - <xml-property name="container" value="network-policies" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="CtagAssignments"> - <xml-root-element name="ctag-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.openecomp.org.v9.CtagAssignment" /> - </java-attributes> - </java-type> - - <java-type name="CtagAssignment"> - <xml-root-element name="ctag-assignment" /> - <java-attributes> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="id." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vlan-id-inner" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="ctag-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Subnets"> - <xml-root-element name="subnets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.openecomp.org.v9.Subnet" /> - </java-attributes> - </java-type> - - <java-type name="Subnet"> - <xml-root-element name="subnet" /> - <java-attributes> - <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Subnet ID, should be UUID." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the subnet." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of this subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="gateway ip address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="network start address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="cidr mask" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="dhcpEnabled" name="dhcp-enabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="dhcp enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the start address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the last address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="subnet-id,subnet-name" /> - <xml-property name="nameProps" value="subnet-name" /> - <xml-property name="uniqueProps" value="subnet-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="subnets" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnfs"> - <xml-properties> - <xml-property name="description" value="Collection of VNFs" /> - </xml-properties> - <xml-root-element name="generic-vnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.openecomp.org.v9.GenericVnf" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnf"> - <xml-root-element name="generic-vnf" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path." /> - <xml-property name="dbAlias" value="operational-status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, used by MSO." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by company or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 Loopback address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 management address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only in some usecases" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether generic-vnf access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelCustomizationId" name="persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - <xml-property name="dbAlias" value="model-customization-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="represents sub zone of the rr plane" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v9.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v9.LagInterfaces" /> - <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.openecomp.org.v9.VfModules" /> - <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.openecomp.org.v9.Licenses" /> - <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.openecomp.org.v9.Entitlements" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="General purpose VNF" /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="generic-vnfs" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="VfModules"> - <xml-properties> - <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs" /> - </xml-properties> - <xml-root-element name="vf-modules" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.openecomp.org.v9.VfModule" /> - </java-attributes> - </java-type> - - <java-type name="VfModule"> - <xml-root-element name="vf-module" /> - <java-attributes> - <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vf-module." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vf-module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBaseVfModule" name="is-base-vf-module" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is base vf module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelCustomizationId" name="persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - <xml-property name="dbAlias" value="model-customization-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the Contrail unique ID for a service-instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="moduleIndex" name="module-index" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Path to the controller object." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="a deployment unit of VNFCs" /> - <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-service-instance-fqdn" /> - <xml-property name="searchable" value="vf-module-id,vf-module-name" /> - <xml-property name="dependentOn" value="generic-vnf" /> - <xml-property name="container" value="vf-modules" /> - </xml-properties> - </java-type> - - - <java-type name="LagLinks"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregation connections" /> - </xml-properties> - <xml-root-element name="lag-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagLink" name="lag-link" type="inventory.aai.openecomp.org.v9.LagLink" /> - </java-attributes> - </java-type> - - <java-type name="LagLink"> - <xml-root-element name="lag-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Alphabetical concatenation of lag-interface names" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="LAG links can connect lag-interfaces" /> - <xml-property name="indexedProps" value="link-name" /> - <xml-property name="container" value="lag-links" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Newvces"> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - </xml-properties> - <xml-root-element name="newvces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="newvce" name="newvce" type="inventory.aai.openecomp.org.v9.Newvce" /> - </java-attributes> - </java-type> - - <java-type name="Newvce"> - <xml-root-element name="newvce" /> - <java-attributes> - <xml-element java-attribute="vnfId2" name="vnf-id2" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF, can't use same attribute name right now until we promote this new object" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - <xml-property name="dbAlias" value="operational-status" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="OBSOLETE - do not use" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.openecomp.org.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2" /> - <xml-property name="searchable" value="vnf-id2,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id2" /> - <xml-property name="container" value="newvces" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Pnfs"> - <xml-properties> - <xml-property name="description" value="Collection of Physical Network Functions." /> - </xml-properties> - <xml-root-element name="pnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.openecomp.org.v9.Pnf" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="Pnf"> - <xml-root-element name="pnf" /> - <java-attributes> - <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="source of name2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id of pnf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by company or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number of the device" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 Loopback 0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV4 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 AIM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="IPV6 OAM address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nf Role is the role performed by this instance in the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.openecomp.org.v9.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.openecomp.org.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="PNF represents a physical network function. typically equipment used in the D1 world." /> - <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status" /> - <xml-property name="searchable" value="pnf-name" /> - <xml-property name="uniqueProps" value="pnf-name" /> - <xml-property name="container" value="pnfs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - </xml-properties> - <xml-root-element name="physical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.openecomp.org.v9.PhysicalLink" /> - </java-attributes> - <xml-properties> - <xml-property name="maximumDepth" value="0" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLink"> - <xml-root-element name="physical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit it" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Dual access mode (e.g., primary, secondary" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="To provide information on who manages this circuit. A&AI or 3rd party transport provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the service Provider on this link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - <xml-property name="indexedProps" value="circuit-id,link-name" /> - <xml-property name="alternateKeys1" value="circuit-id" /> - <xml-property name="container" value="physical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name,circuit-id" /> - </xml-properties> - </java-type> - - <java-type name="VigServers"> - <xml-root-element name="vig-servers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vigServer" name="vig-server" type="inventory.aai.openecomp.org.v9.VigServer" /> - </java-attributes> - </java-type> - - <java-type name="VigServer"> - <xml-root-element name="vig-server" /> - <java-attributes> - <xml-element java-attribute="vigAddressType" name="vig-address-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="indicates whether the VIG is for AVPN or INTERNET" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV4Vig" name="ipaddress-v4-vig" type="java.lang.String" > - <xml-properties> - <xml-property name="description" value="v4 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV6Vig" name="ipaddress-v6-vig" type="java.lang.String" > - <xml-properties> - <xml-property name="description" value="v6 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607" /> - <xml-property name="indexedProps" value="vig-address-type" /> - <xml-property name="dependentOn" value="ipsec-configuration" /> - <xml-property name="container" value="vig-servers" /> - </xml-properties> - </java-type> - - <java-type name="IpsecConfigurations"> - <xml-root-element name="ipsec-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ipsecConfiguration" name="ipsec-configuration" type="inventory.aai.openecomp.org.v9.IpsecConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="IpsecConfiguration"> - <xml-root-element name="ipsec-configuration" /> - <java-attributes> - <xml-element java-attribute="ipsecConfigurationId" name="ipsec-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of this configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedVigAddressType" name="requested-vig-address-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicate the type of VIG server like AVPN, INTERNET, BOTH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedEncryptionStrength" name="requested-encryption-strength" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedDmzType" name="requested-dmz-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="can offer a shared DMZ or a DMZ specific to a customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sharedDmzNetworkAddress" name="shared-dmz-network-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network address of shared DMZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedCustomerName" name="requested-customer-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="If the DMZ is a custom DMZ, this field will indicate the customer information" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikeVersion" name="ike-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="can be 1 or 2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Authentication" name="ikev1-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contains values like md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Encryption" name="ikev1-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1DhGroup" name="ikev1-dh-group" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmGroupId" name="ikev1-am-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name defined in VIG for clients using aggressive mode" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmPassword" name="ikev1-am-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="pre-shared key for the above group name " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1SaLifetime" name="ikev1-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Lifetime for IKEv1 SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecAuthentication" name="ipsec-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecEncryption" name="ipsec-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecSaLifetime" name="ipsec-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Life time for IPSec SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecPfs" name="ipsec-pfs" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="enable PFS or not" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserId" name="xauth-userid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="user ID for xAuth, sm-user, nmteHostName" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserPassword" name="xauth-user-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted using the Juniper $9$ algorithm" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdInterval" name="dpd-interval" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The time between DPD probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdFrequency" name="dpd-frequency" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Maximum number of DPD before claiming the tunnel is down" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - <xml-element java-attribute="vigServers" name="vig-servers" type="inventory.aai.openecomp.org.v9.VigServers" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C" /> - <xml-property name="indexedProps" value="ipsec-configuration-id" /> - <xml-property name="uniqueProps" value="ipsec-configuration-id" /> - <xml-property name="container" value="ipsec-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="NotificationEvent"> - <xml-root-element name="notification-event" /> - <java-attributes> - <xml-element java-attribute="cambriaPartition" name="cambria.partition" type="java.lang.String" /> - <xml-element java-attribute="eventHeader" name="event-header" type="inventory.aai.openecomp.org.v9.NotificationEventHeader" /> - <xml-any-element java-attribute="entity" /> - </java-attributes> - </java-type> - <java-type name="NotificationEventHeader"> - <xml-root-element name="notification-event-header" /> - <java-attributes> - <xml-element java-attribute="id" name="id" type="java.lang.String" /> - <xml-element java-attribute="timestamp" name="timestamp" type="java.lang.String" /> - <xml-element java-attribute="sourceName" name="source-name" type="java.lang.String" /> - <xml-element java-attribute="domain" name="domain" type="java.lang.String" /> - <xml-element java-attribute="sequenceNumber" name="sequence-number" type="java.lang.String" /> - <xml-element java-attribute="severity" name="severity" type="java.lang.String" /> - <xml-element java-attribute="eventType" name="event-type" type="java.lang.String" /> - <xml-element java-attribute="version" name="version" type="java.lang.String" /> - <xml-element java-attribute="action" name="action" type="java.lang.String" /> - <xml-element java-attribute="entityType" name="entity-type" type="java.lang.String" /> - <xml-element java-attribute="topEntityType" name="top-entity-type" type="java.lang.String" /> - <xml-element java-attribute="entityLink" name="entity-link" type="java.lang.String" /> - <xml-element java-attribute="status" name="status" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="AaiInternal"> - <xml-root-element name="aai-internal" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="reservedPropNames" name="reserved-prop-names" type="inventory.aai.openecomp.org.v9.ReservedPropNames" /> - <xml-element container-type="java.util.ArrayList" java-attribute="edgePropNames" name="edge-prop-names" type="inventory.aai.openecomp.org.v9.EdgePropNames" /> - </java-attributes> - </java-type> - <java-type name="ReservedPropNames"> - <xml-properties> - <xml-property name="description" value="Internal map to define some reserved properties of a vertex" /> - <xml-property name="uniqueProps" value="aai-unique-key" /> - <xml-property name="indexedProps" value="aai-unique-key,source-of-truth,aai-node-type,aai-uri" /> - </xml-properties> - <xml-root-element name="reserved-prop-names" /> - <java-attributes> - <xml-element java-attribute="lastModSourceOfTruth" name="last-mod-source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiNodeType" name="aai-node-type" type="java.lang.String" /> - <xml-element java-attribute="aaiCreatedTs" name="aai-created-ts" type="java.lang.Long" /> - <xml-element java-attribute="aaiUniqueKey" name="aai-unique-key" type="java.lang.String" /> - <xml-element java-attribute="aaiLastModTs" name="aai-last-mod-ts" type="java.lang.Long" /> - <xml-element java-attribute="sourceOfTruth" name="source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiUri" name="aai-uri" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="EdgePropNames"> - <!-- NOTE that the names of these properties are not consistent and are in mixed case and hyphen case for now --> - <xml-properties> - <xml-property name="description" value="Internal map to define the properties of an edge and interpret the map EdgeRules" /> - <xml-property name="edgeInfo" value="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV" /> - </xml-properties> - <xml-root-element name="edge-prop-names" /> - <java-attributes> - <xml-element java-attribute="edgeLabel" name="edgeLabel" type="java.lang.String" /> - <xml-element java-attribute="direction" name="direction" type="java.lang.String" /> - <xml-element java-attribute="multiplicityRule" name="multiplicityRule" type="java.lang.String" /> - <xml-element java-attribute="isParent" name="isParent" type="java.lang.Boolean" /> - <xml-element java-attribute="usesResource" name="usesResource" type="java.lang.Boolean" /> - <xml-element java-attribute="hasDelTarget" name="hasDelTarget" type="java.lang.Boolean" /> - <xml-element java-attribute="SVC-INFRA" name="SVC-INFRA" type="java.lang.Boolean" /> - <xml-element java-attribute="SVC-INFRA-REV" name="SVC-INFRA-REV" type="java.lang.Boolean" /> - </java-attributes> - </java-type> - - <java-type name="Models"> - <xml-properties> - <xml-property name="description" value="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models" /> - </xml-properties> - <xml-root-element name="models" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.openecomp.org.v9.Model" /> - </java-attributes> - </java-type> - - <java-type name="Model"> - <xml-root-element name="model" /> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version" /> - <xml-property name="nameProps" value="model-type" /> - <xml-property name="indexedProps" value="model-invariant-id,model-type" /> - <xml-property name="uniqueProps" value="model-invariant-id" /> - <xml-property name="container" value="models" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.openecomp.org.v9.ModelVers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - - <java-type name="ModelVers"> - <xml-root-element name="model-vers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelVer" name="model-ver" type="inventory.aai.openecomp.org.v9.ModelVer" /> - </java-attributes> - </java-type> - - <java-type name="ModelVer"> - <xml-root-element name="model-ver" /> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models" /> - <xml-property name="nameProps" value="model-name" /> - <xml-property name="indexedProps" value="model-version-id,model-name,model-version" /> - <xml-property name="uniqueProps" value="model-version-id" /> - <xml-property name="container" value="model-vers" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelVersionId" name="model-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v9.ModelElements" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.openecomp.org.v9.Metadata" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelElements"> - <xml-root-element name="model-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.openecomp.org.v9.ModelElement" /> - </java-attributes> - </java-type> - - <java-type name="ModelElement"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model." /> - <xml-property name="uniqueProps" value="model-element-uuid" /> - <xml-property name="indexedProps" value="model-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-elements" /> - </xml-properties> - <xml-root-element name="model-element" /> - <java-attributes> - <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="How many of this type of element are required/allowed" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-points" type="java.lang.String" > - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v9.ModelElements"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.openecomp.org.v9.ModelConstraints"> - <xml-properties> - <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraints"> - <xml-root-element name="model-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.openecomp.org.v9.ModelConstraint" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraint"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="model-constraint-uuid" /> - <xml-property name="indexedProps" value="model-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-constraints" /> - </xml-properties> - <xml-root-element name="model-constraint" /> - <java-attributes> - <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String" /> - <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.openecomp.org.v9.ConstrainedElementSets" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSets"> - <xml-root-element name="constrained-element-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.openecomp.org.v9.ConstrainedElementSet" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="constrained-element-set-uuid" /> - <xml-property name="indexedProps" value="constrained-element-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="constrained-element-sets" /> - </xml-properties> - <xml-root-element name="constrained-element-set" /> - <java-attributes> - <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.openecomp.org.v9.ElementChoiceSets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSets"> - <xml-root-element name="element-choice-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.openecomp.org.v9.ElementChoiceSet" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="element-choice-set-uuid" /> - <xml-property name="indexedProps" value="element-choice-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="element-choice-sets" /> - </xml-properties> - <xml-root-element name="element-choice-set" /> - <java-attributes> - <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.openecomp.org.v9.ModelElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueries"> - <xml-root-element name="named-queries" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.openecomp.org.v9.NamedQuery" /> - </java-attributes> - </java-type> - - <java-type name="NamedQuery"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="nameProps" value="named-query-name" /> - <xml-property name="uniqueProps" value="named-query-uuid" /> - <xml-property name="indexedProps" value="named-query-uuid,named-query-name" /> - <xml-property name="container" value="named-queries" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="named-query" /> - <java-attributes> - <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String" > - <xml-element-wrapper name="required-input-params" /> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.openecomp.org.v9.NamedQueryElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElements"> - <xml-root-element name="named-query-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.openecomp.org.v9.NamedQueryElement" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElement"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="named-query-element-uuid" /> - <xml-property name="indexedProps" value="named-query-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="named-query-elements" /> - </xml-properties> - <xml-root-element name="named-query-element" /> - <java-attributes> - <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String" /> - <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.openecomp.org.v9.NamedQueryElements" /> - <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.openecomp.org.v9.RelatedLookups" /> - <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.openecomp.org.v9.PropertyConstraints" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookups"> - <xml-root-element name="related-lookups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.openecomp.org.v9.RelatedLookup" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookup"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="related-lookup-uuid" /> - <xml-property name="indexedProps" value="related-lookup-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="related-lookups" /> - </xml-properties> - <xml-root-element name="related-lookup" /> - <java-attributes> - <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraints"> - <xml-root-element name="property-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.openecomp.org.v9.PropertyConstraint" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraint"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="property-constraint-uuid" /> - <xml-property name="indexedProps" value="property-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="property-constraints" /> - </xml-properties> - <xml-root-element name="property-constraint" /> - <java-attributes> - <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="propertyName" name="property-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ModelAndNamedQuerySearch"> - <xml-properties> - <xml-property name="description" value="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="model-and-named-query-search" /> - <java-attributes> - <xml-element java-attribute="queryParameters" name="query-parameters" type="inventory.aai.openecomp.org.v9.QueryParameters" /> - <xml-element java-attribute="instanceFilters" name="instance-filters" type="inventory.aai.openecomp.org.v9.InstanceFilters" /> - <xml-element java-attribute="secondaryFilts" name="secondary-filts" type="inventory.aai.openecomp.org.v9.SecondaryFilts" /> - <xml-element java-attribute="topNodeType" name="top-node-type" type="java.lang.String" /> - <xml-element java-attribute="secondaryFilterCutPoint" name="secondary-filter-cut-point" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="QueryParameters"> - <xml-properties> - <xml-property name="description" value="QueryParameters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="query-parameters" /> - <java-attributes> - <xml-element java-attribute="namedQuery" name="named-query" type="inventory.aai.openecomp.org.v9.NamedQuery" /> - <xml-element java-attribute="model" name="model" type="inventory.aai.openecomp.org.v9.OverloadedModel" /> - </java-attributes> - </java-type> - - <java-type name="OverloadedModel"> - <xml-root-element name="overloaded-model" /> - <xml-properties> - <xml-property name="description" value="Allows for legacy POST of old-style and new-style models" /> - </xml-properties> - <java-attributes> - <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelNameVersionId" name="model-name-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelId" name="model-id" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Invariant unique ID which does not change from version to version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.openecomp.org.v9.ModelVers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilters"> - <xml-properties> - <xml-property name="description" value="InstanceFilters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="instance-filters" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceFilter" name="instance-filter" type="inventory.aai.openecomp.org.v9.InstanceFilter" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilter"> - <xml-properties> - <xml-property name="description" value="InstanceFilter for performing a named-query or model query" /> - <xml-property name="container" value="instance-filters" /> - </xml-properties> - <xml-root-element name="instance-filter" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilts"> - <xml-properties> - <xml-property name="description" value="SecondaryFilts for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="secondary-filts" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilt" name="secondary-filt" type="inventory.aai.openecomp.org.v9.SecondaryFilt" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilt"> - <xml-properties> - <xml-property name="description" value="SecondaryFilt for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="secondary-filt" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="Properties"> - <xml-properties> - <xml-property name="description" value="Property holder for query properties or instance properties" /> - </xml-properties> - <xml-root-element name="properties" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ResponseList"> - <xml-properties> - <xml-property name="description" value="Response container for the results of a named-query or model query" /> - </xml-properties> - <xml-root-element name="response-list" /> - <java-attributes> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.openecomp.org.v9.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItems"> - <xml-properties> - <xml-property name="description" value="Container for inventory items in response list" /> - <xml-property name="container" value="response-list" /> - </xml-properties> - <xml-root-element name="inventory-response-items" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryResponseItem" name="inventory-response-item" type="inventory.aai.openecomp.org.v9.InventoryResponseItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItem"> - <xml-properties> - <xml-property name="description" value="Inventory item for response list" /> - <xml-property name="container" value="inventory-response-items" /> - </xml-properties> - <xml-root-element name="inventory-response-item" /> - <java-attributes> - <xml-element java-attribute="modelName" name="model-name" type="java.lang.String" /> - <xml-any-element java-attribute="item" /> - <xml-element java-attribute="extraProperties" name="extra-properties" type="inventory.aai.openecomp.org.v9.ExtraProperties" /> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.openecomp.org.v9.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperties"> - <xml-properties> - <xml-property name="description" value="Extra properties for inventory item for response list" /> - </xml-properties> - <xml-root-element name="extra-properties" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="extraProperty" name="extra-property" type="inventory.aai.openecomp.org.v9.ExtraProperty" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperty"> - <xml-root-element name="extra-property" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-any-element java-attribute="propertyValue" lax="true" name="property-value" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReferences"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="route-table-references" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routeTableReference" name="route-table-reference" type="inventory.aai.openecomp.org.v9.RouteTableReference" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReference"> - <xml-root-element name="route-table-reference" /> - <java-attributes> - <xml-element java-attribute="routeTableReferenceId" name="route-table-reference-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTableReferenceFqdn" name="route-table-reference-fqdn" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="FQDN entry in the route table." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Openstack route table reference." /> - <xml-property name="nameProps" value="route-table-reference-fqdn" /> - <xml-property name="uniqueProps" value="route-table-reference-id" /> - <xml-property name="indexedProps" value="route-table-reference-id,route-table-reference-fqdn" /> - <xml-property name="container" value="route-table-references" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="InstanceGroups"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="instance-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceGroup" name="instance-group" type="inventory.aai.openecomp.org.v9.InstanceGroup" /> - </java-attributes> - </java-type> - - <java-type name="InstanceGroup"> - <xml-root-element name="instance-group" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Instance Group ID, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="description" name="description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Descriptive text to help identify the usage of this instance-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="type" name="type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Only valid value today is lower case ha for high availability" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subType" name="sub-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="General mechanism for grouping instances" /> - <xml-property name="nameProps" value="description" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id,description,type,sub-type" /> - <xml-property name="container" value="instance-groups" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="SegmentationAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack segmentation assignments" /> - </xml-properties> - <xml-root-element name="segmentation-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.openecomp.org.v9.SegmentationAssignment" /> - </java-attributes> - </java-type> - - <java-type name="SegmentationAssignment"> - <xml-root-element name="segmentation-assignment" /> - <java-attributes> - <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack segmentation assignment." /> - <xml-property name="indexedProps" value="segmentation-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="segmentation-assignments" /> - </xml-properties> - </java-type> - - <java-type name="AllottedResources"> - <xml-properties> - <xml-property name="description" value="This object is used to store slices of services being offered" /> - </xml-properties> - <xml-root-element name="allotted-resources" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="allottedResource" name="allotted-resource" type="inventory.aai.openecomp.org.v9.AllottedResource" /> - </java-attributes> - </java-type> - - <java-type name="AllottedResource"> - <xml-root-element name="allotted-resource" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The descriptive information assigned to this allotted resource instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Link back to more information in the controller" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - <xml-property name="dbAlias" value="model-invariant-id-local" /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="deployment" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - <xml-property name="visibility" value="internal" /> - <xml-property name="dbAlias" value="model-version-id-local" /> - <xml-property name="dataCopy" value="service-design-and-creation/models/model/{persona-model-id}/model-vers?model-version={persona-model-version}#model-version-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelCustomizationId" name="persona-model-customization-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." /> - <xml-property name="dbAlias" value="model-customization-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.openecomp.org.v9.TunnelXconnects" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Represents a slice or partial piece of a resource that gets separately allotted" /> - <xml-property name="nameProps" value="description" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id,persona-model-id,persona-model-version" /> - <xml-property name="dependentOn" value="service-instance" /> - <xml-property name="container" value="allotted-resources" /> - <!-- <xml-property name="namespace" value="network" /> --> - </xml-properties> - </java-type> - - <java-type name="TunnelXconnects"> - <xml-properties> - <xml-property name="description" value="This object is used to store the specific tunnel cross connect aspects of an allotted resource" /> - </xml-properties> - <xml-root-element name="tunnel-xconnects" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tunnelXconnect" name="tunnel-xconnect" type="inventory.aai.openecomp.org.v9.TunnelXconnect" /> - </java-attributes> - </java-type> - - <java-type name="TunnelXconnect"> - <xml-root-element name="tunnel-xconnect" /> - <java-attributes> - <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN uplink bandwidth for WAN1" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN downlink bandwidth for WAN1" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN uplink bandwidth for WAN2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The WAN downlink bandwidth for WAN2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted" /> - <xml-property name="uniqueProps" value="id" /> - <xml-property name="indexedProps" value="id" /> - <xml-property name="dependentOn" value="allotted-resource" /> - <xml-property name="container" value="tunnel-xconnects" /> - <!-- <xml-property name="namespace" value="network" /> --> - </xml-properties> - </java-type> - - <java-type name="Entitlements"> - <xml-properties> - <xml-property name="description" value="Entitlements, keyed by group-uuid and resource-uuid, related to license management" /> - </xml-properties> - <xml-root-element name="entitlements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="entitlement" name="entitlement" type="inventory.aai.openecomp.org.v9.Entitlement" /> - </java-attributes> - </java-type> - - <java-type name="Entitlement"> - <xml-root-element name="entitlement" /> - <java-attributes> - <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID for the entitlement group the resource comes from, should be uuid." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of an entitlement resource. " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Metadata for entitlement group." /> - <xml-property name="indexedProps" value="group-uuid,resource-uuid" /> - <xml-property name="dependentOn" value="generic-vnf,vce,vpe" /> - <xml-property name="container" value="entitlements" /> - </xml-properties> - </java-type> - - - <java-type name="Licenses"> - <xml-properties> - <xml-property name="description" value="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management" /> - </xml-properties> - <xml-root-element name="licenses" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="license" name="license" type="inventory.aai.openecomp.org.v9.License" /> - </java-attributes> - </java-type> - - <java-type name="License"> - <xml-root-element name="license" /> - <java-attributes> - <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID for the license group the resource belongs to, should be uuid." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of a license resource. " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Metadata for license group." /> - <xml-property name="indexedProps" value="group-uuid,resource-uuid" /> - <xml-property name="dependentOn" value="generic-vnf,vce,vpe" /> - <xml-property name="container" value="licenses" /> - </xml-properties> - </java-type> - - <java-type name="Vnf"> - <xml-root-element name="vnf"/> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Abstract vnf class" /> - <xml-property name="indexedProps" value="vnf-id" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="inheritors" value="vce,vpe,generic-vnf" /> - <xml-property name="abstract" value="true" /> - </xml-properties> - </java-type> - - <java-type name="Zones"> - <xml-properties> - <xml-property name="description" value="Collection of zones" /> - </xml-properties> - <xml-root-element name="zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="zone" name="zone" type="inventory.aai.openecomp.org.v9.Zone" /> - </java-attributes> - </java-type> - - <java-type name="Zone"> - <xml-root-element name="zone" /> - <java-attributes> - <xml-element java-attribute="zoneId" name="zone-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Code assigned by AIC to the zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="zoneName" name="zone-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="English name associated with the zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="designType" name="design-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Design of zone [Medium/Large…]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="zoneContext" name="zone-context" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Context of zone [production/test]" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="status" name="status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Status of a zone." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.openecomp.org.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A zone is a grouping of assets in a location homing to the same connections into the CBB" /> - <xml-property name="nameProps" value="zone-name" /> - <xml-property name="indexedProps" value="zone-id,design-type,zone-context" /> - <xml-property name="uniqueProps" value="zone-id" /> - <xml-property name="container" value="zones" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - </java-types> -</xml-bindings> diff --git a/kubernetes/aai/charts/aai-data-router/templates/configmap.yaml b/kubernetes/aai/charts/aai-data-router/templates/configmap.yaml index a8793acd9f..9652712aa6 100644 --- a/kubernetes/aai/charts/aai-data-router/templates/configmap.yaml +++ b/kubernetes/aai/charts/aai-data-router/templates/configmap.yaml @@ -9,38 +9,6 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "common.fullname" . }}-model-v8 - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v8.xml").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "common.fullname" . }}-model-v9 - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v9.xml").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "common.fullname" . }}-model-v10 - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v10.xml").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "common.fullname" . }}-model-v11 - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v11.xml").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: name: {{ include "common.fullname" . }}-dynamic namespace: {{ include "common.namespace" . }} data: diff --git a/kubernetes/aai/charts/aai-data-router/templates/deployment.yaml b/kubernetes/aai/charts/aai-data-router/templates/deployment.yaml index 79bcff33eb..cf81948160 100644 --- a/kubernetes/aai/charts/aai-data-router/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-data-router/templates/deployment.yaml @@ -56,6 +56,18 @@ spec: volumeMounts: - name: {{ include "common.fullname" . }}-logs mountPath: /logroot/ + - name: {{ include "common.name" . }}-inject-models + command: + - /bin/bash + - "-c" + - | + git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit + cp -rp /tmp/gerrit/data-router/appconfig/model/* /model-dir + image: "{{ .Values.global.repository | default .Values.dockerHubRepository }}/{{ .Values.ubuntuInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: modeldir + mountPath: "/model-dir" containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" @@ -79,18 +91,6 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /opt/app/data-router/config/model/aai_oxm_v8.xml - subPath: aai_oxm_v8.xml - name: {{ include "common.fullname" . }}-model-v8 - - mountPath: /opt/app/data-router/config/model/aai_oxm_v9.xml - subPath: aai_oxm_v9.xml - name: {{ include "common.fullname" . }}-model-v9 - - mountPath: /opt/app/data-router/config/model/aai_oxm_v10.xml - subPath: aai_oxm_v10.xml - name: {{ include "common.fullname" . }}-model-v10 - - mountPath: /opt/app/data-router/config/model/aai_oxm_v11.xml - subPath: aai_oxm_v11.xml - name: {{ include "common.fullname" . }}-model-v11 - mountPath: /opt/app/data-router/config/auth name: {{ include "common.fullname" . }}-auth - mountPath: /opt/app/data-router/config/data-router.properties @@ -104,6 +104,8 @@ spec: name: {{ include "common.fullname" . }}-dynamic-policy - mountPath: /logs/ name: {{ include "common.fullname" . }}-logs + - name: modeldir + mountPath: /opt/app/data-router/config/model ports: - containerPort: {{ .Values.service.internalPort }} {{- if eq .Values.liveness.enabled true }} @@ -122,18 +124,6 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.fullname" . }}-model-v8 - configMap: - name: {{ include "common.fullname" . }}-model-v8 - - name: {{ include "common.fullname" . }}-model-v9 - configMap: - name: {{ include "common.fullname" . }}-model-v9 - - name: {{ include "common.fullname" . }}-model-v10 - configMap: - name: {{ include "common.fullname" . }}-model-v10 - - name: {{ include "common.fullname" . }}-model-v11 - configMap: - name: {{ include "common.fullname" . }}-model-v11 - name: {{ include "common.fullname" . }}-auth secret: secretName: {{ include "common.fullname" . }} @@ -149,6 +139,8 @@ spec: - name: {{ include "common.fullname" . }}-logs hostPath: path: {{ .Values.persistence.mountPath }}/{{ include "common.namespace" . }}/{{ .Values.persistence.mountSubPath }} + - name: modeldir + emptyDir: {} restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-data-router/values.yaml b/kubernetes/aai/charts/aai-data-router/values.yaml index 3957df156d..c4bfc62a40 100644 --- a/kubernetes/aai/charts/aai-data-router/values.yaml +++ b/kubernetes/aai/charts/aai-data-router/values.yaml @@ -12,10 +12,15 @@ image: onap/data-router:v1.1.0 pullPolicy: Always restartPolicy: Always +dockerhubRepository: registry.hub.docker.com +ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 + # application configuration config: keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 + gerritBranch: master + gerritProject: http://gerrit.onap.org/r/aai/test-config # default number of instances diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/model/aai_oxm_v9.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/model/aai_oxm_v9.xml deleted file mode 100644 index 6337c32edc..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/model/aai_oxm_v9.xml +++ /dev/null @@ -1,4775 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.att.com.v9" xml-mapping-metadata-complete="true"> - <xml-schema element-form-default="QUALIFIED"> - <xml-ns namespace-uri="http://com.att.aai.inventory/v9" /> - </xml-schema> - <java-types> - <java-type name="Inventory"> - <xml-root-element name="inventory" /> - <java-attributes> - <xml-element java-attribute="search" name="search" type="inventory.aai.att.com.v9.Search" /> - <xml-element java-attribute="actions" name="actions" type="inventory.aai.att.com.v9.Actions" /> - <xml-element java-attribute="cloudInfrastructure" name="cloud-infrastructure" type="inventory.aai.att.com.v9.CloudInfrastructure" /> - <xml-element java-attribute="licenseManagement" name="license-management" type="inventory.aai.att.com.v9.LicenseManagement" /> - <xml-element java-attribute="business" name="business" type="inventory.aai.att.com.v9.Business" /> - <xml-element java-attribute="serviceDesignAndCreation" name="service-design-and-creation" type="inventory.aai.att.com.v9.ServiceDesignAndCreation" /> - <xml-element java-attribute="network" name="network" type="inventory.aai.att.com.v9.Network" /> - <xml-element java-attribute="aaiInternal" name="aai-internal" type="inventory.aai.att.com.v9.AaiInternal" /> - </java-attributes> - </java-type> - - <java-type name="Search"> - <xml-root-element name="search" /> - <java-attributes> - <xml-element java-attribute="edgeTagQueryResult" name="edge-tag-query-result" type="inventory.aai.att.com.v9.EdgeTagQueryResult" /> - <xml-element java-attribute="edgeTagQueryRequest" name="edge-tag-query-request" type="inventory.aai.att.com.v9.EdgeTagQueryRequest" /> - <xml-element java-attribute="searchResults" name="search-results" type="inventory.aai.att.com.v9.SearchResults" /> - <xml-element java-attribute="sdnZoneResponse" name="sdn-zone-response" type="inventory.aai.att.com.v9.SdnZoneResponse" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryResult"> - <xml-root-element name="edge-tag-query-result" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.att.com.v9.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="TaggedInventoryItemList"> - <xml-root-element name="tagged-inventory-item-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItem" name="inventory-item" type="inventory.aai.att.com.v9.InventoryItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItem"> - <xml-root-element name="inventory-item" /> - <java-attributes> - <xml-element java-attribute="inventoryItemType" name="inventory-item-type" type="java.lang.String" /> - <xml-element java-attribute="inventoryItemLink" name="inventory-item-link" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryItemData" name="inventory-item-data" type="inventory.aai.att.com.v9.InventoryItemData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="taggedInventoryItemList" name="tagged-inventory-item-list" type="inventory.aai.att.com.v9.TaggedInventoryItemList" /> - </java-attributes> - </java-type> - - <java-type name="InventoryItemData"> - <xml-root-element name="inventory-item-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="EdgeTagQueryRequest"> - <xml-root-element name="edge-tag-query-request" /> - <java-attributes> - <xml-element java-attribute="edgeTag" name="edge-tag" type="java.lang.String" /> - <xml-element java-attribute="resultDetail" name="result-detail" type="java.lang.String" /> - <xml-element java-attribute="startNodeType" name="start-node-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="startNodeFilter" name="start-node-filter" type="inventory.aai.att.com.v9.StartNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="includeNodeFilter" name="include-node-filter" type="inventory.aai.att.com.v9.IncludeNodeFilter" /> - <xml-element container-type="java.util.ArrayList" java-attribute="secondaryFilter" name="secondary-filter" type="inventory.aai.att.com.v9.SecondaryFilter" /> - </java-attributes> - </java-type> - - <java-type name="StartNodeFilter"> - <xml-root-element name="start-node-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="IncludeNodeFilter"> - <xml-root-element name="include-node-filter" /> - <java-attributes> - <xml-element java-attribute="includeNodeType" name="include-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SecondaryFilter"> - <xml-root-element name="secondary-filter" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="filterType" name="filter-type" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="SearchResults"> - <xml-root-element name="search-results" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="resultData" name="result-data" type="inventory.aai.att.com.v9.ResultData" /> - </java-attributes> - </java-type> - - <java-type name="ResultData"> - <xml-root-element name="result-data" /> - <java-attributes> - <xml-element java-attribute="resourceType" name="resource-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The specific type of node in the A&AI graph" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceLink" name="resource-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The URL to the specific resource" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="SdnZoneResponse"> - <xml-root-element name="sdn-zone-response" /> - <java-attributes> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.att.com.v9.OamNetworks" /> - <xml-element container-type="java.util.ArrayList" java-attribute="azAndDvsSwitches" name="az-and-dvs-switches" type="inventory.aai.att.com.v9.AzAndDvsSwitches" /> - </java-attributes> - </java-type> - - <java-type name="AzAndDvsSwitches"> - <xml-root-element name="az-and-dvs-switches" /> - <java-attributes> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.att.com.v9.DvsSwitches" /> - <xml-element java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.att.com.v9.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="Actions"> - <xml-properties> - <xml-property name="description" value="APIs that are more action related than REST (e.g., notify, update)." /> - </xml-properties> - <xml-root-element name="actions" /> - <java-attributes> - <xml-element java-attribute="update" name="update" type="inventory.aai.att.com.v9.Update" /> - <xml-element java-attribute="notify" name="notify" type="inventory.aai.att.com.v9.Notify" /> - </java-attributes> - </java-type> - - <java-type name="Update"> - <xml-properties> - <xml-property name="description" value="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team." /> - </xml-properties> - <xml-root-element name="update" /> - <java-attributes> - <xml-element java-attribute="updateNodeType" name="update-node-type" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="updateNodeKey" name="update-node-key" type="inventory.aai.att.com.v9.UpdateNodeKey" /> - <xml-element java-attribute="updateNodeUri" name="update-node-uri" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="action" name="action" type="inventory.aai.att.com.v9.Action" /> - </java-attributes> - </java-type> - - <java-type name="Action"> - <xml-root-element name="action" /> - <java-attributes> - <xml-element java-attribute="actionType" name="action-type" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="actionData" name="action-data" type="inventory.aai.att.com.v9.ActionData" /> - </java-attributes> - </java-type> - - <java-type name="ActionData"> - <xml-root-element name="action-data" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="UpdateNodeKey"> - <xml-root-element name="update-node-key" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Notify"> - <xml-root-element name="notify" /> - <java-attributes> - <xml-element java-attribute="eventId" name="event-id" required="true" type="java.lang.String" /> - <xml-element java-attribute="nodeType" name="node-type" type="java.lang.String" /> - <xml-element java-attribute="eventTrigger" name="event-trigger" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="keyData" name="key-data" type="inventory.aai.att.com.v9.KeyData" /> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="KeyData"> - <xml-root-element name="key-data" /> - <java-attributes> - <xml-element java-attribute="keyName" name="key-name" type="java.lang.String" /> - <xml-element java-attribute="keyValue" name="key-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="CloudInfrastructure"> - <xml-properties> - <xml-property name="description" value="Namespace for cloud infrastructure." /> - </xml-properties> - <xml-root-element name="cloud-infrastructure" /> - <java-attributes> - <xml-element java-attribute="complexes" name="complexes" type="inventory.aai.att.com.v9.Complexes" /> - <xml-element java-attribute="cloudRegions" name="cloud-regions" type="inventory.aai.att.com.v9.CloudRegions" /> - <xml-element java-attribute="networkProfiles" name="network-profiles" type="inventory.aai.att.com.v9.NetworkProfiles" /> - <xml-element java-attribute="pservers" name="pservers" type="inventory.aai.att.com.v9.Pservers" /> - <xml-element java-attribute="virtualDataCenters" name="virtual-data-centers" type="inventory.aai.att.com.v9.VirtualDataCenters" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegions"> - <xml-root-element name="cloud-regions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cloudRegion" name="cloud-region" type="inventory.aai.att.com.v9.CloudRegion" /> - </java-attributes> - </java-type> - - <java-type name="CloudRegion"> - <xml-root-element name="cloud-region" /> - <java-attributes> - <xml-element java-attribute="cloudOwner" name="cloud-owner" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifies the vendor and cloud name, e.g., att-aic. First part of composite key should be formatted as vendor-cloudname" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionId" name="cloud-region-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Identifier used by the vendor for the region. Second part of composite key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudType" name="cloud-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the cloud (e.g., openstack)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ownerDefinedType" name="owner-defined-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Cloud-owner defined type indicator (e.g., DCP, LCP)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudRegionVersion" name="cloud-region-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Software version employed at the site" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cloudZone" name="cloud-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Zone where the cloud is homed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="complex name for cloud-region instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroups" name="volume-groups" type="inventory.aai.att.com.v9.VolumeGroups" /> - <xml-element java-attribute="tenants" name="tenants" type="inventory.aai.att.com.v9.Tenants" /> - <xml-element java-attribute="flavors" name="flavors" type="inventory.aai.att.com.v9.Flavors" /> - <xml-element java-attribute="groupAssignments" name="group-assignments" type="inventory.aai.att.com.v9.GroupAssignments" /> - <xml-element java-attribute="snapshots" name="snapshots" type="inventory.aai.att.com.v9.Snapshots" /> - <xml-element java-attribute="images" name="images" type="inventory.aai.att.com.v9.Images" /> - <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.att.com.v9.DvsSwitches" /> - <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.att.com.v9.OamNetworks" /> - <xml-element java-attribute="availabilityZones" name="availability-zones" type="inventory.aai.att.com.v9.AvailabilityZones" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC." /> - <xml-property name="indexedProps" value="cloud-owner,cloud-region-id,cloud-type,owner-defined-type" /> - <xml-property name="nameProps" value="owner-defined-type" /> - <xml-property name="container" value="cloud-regions" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - <java-type name="VolumeGroups"> - <xml-properties> - <xml-property name="description" value="Collection of persistent block-level storage." /> - </xml-properties> - <xml-root-element name="volume-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volumeGroup" name="volume-group" type="inventory.aai.att.com.v9.VolumeGroup" /> - </java-attributes> - </java-type> - - <java-type name="VolumeGroup"> - <xml-root-element name="volume-group" /> - <java-attributes> - <xml-element java-attribute="volumeGroupId" name="volume-group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of volume-group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeGroupName" name="volume-group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the volume group." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this volume-group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Persistent block-level storage." /> - <xml-property name="indexedProps" value="volume-group-name,vnf-type,heat-stack-id,volume-group-id" /> - <xml-property name="searchable" value="volume-group-id,volume-group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="volume-groups" /> - </xml-properties> - </java-type> - - <java-type name="RelationshipList"> - <xml-root-element name="relationship-list" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.att.com.v9.Relationship" /> - </java-attributes> - </java-type> - - <java-type name="Relationship"> - <xml-root-element name="relationship" /> - <java-attributes> - <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate type of node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to the object in A&AI." /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.att.com.v9.RelationshipData" /> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.att.com.v9.RelatedToProperty" /> - </java-attributes> - </java-type> - - <java-type name="RelatedToProperty"> - <xml-root-element name="related-to-property" /> - <java-attributes> - <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Key part of a key/value pair" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value part of a key/value pair" /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="RelationshipData"> - <xml-root-element name="relationship-data" /> - <java-attributes> - <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="A keyword provided by A&AI to indicate an attribute." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Value of the attribute." /> - </xml-properties> - </xml-element> - </java-attributes> - </java-type> - - <java-type name="Complexes"> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - </xml-properties> - <xml-root-element name="complexes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="complex" name="complex" type="inventory.aai.att.com.v9.Complex" /> - </java-attributes> - </java-type> - - <java-type name="Complex"> - <xml-root-element name="complex" /> - <java-attributes> - <xml-element java-attribute="physicalLocationId" name="physical-location-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for physical location, e.g., CLLI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dataCenterCode" name="data-center-code" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Data center code which can be an alternate way to identify a complex" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gamma complex name for LCP instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL of the keystone identity service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalLocationType" name="physical-location-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type, e.g., central office, data center." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="street1" name="street1" required="true" type="java.lang.String" /> - <xml-element java-attribute="street2" name="street2" type="java.lang.String" /> - <xml-element java-attribute="city" name="city" required="true" type="java.lang.String" /> - <xml-element java-attribute="state" name="state" type="java.lang.String" /> - <xml-element java-attribute="postalCode" name="postal-code" required="true" type="java.lang.String" /> - <xml-element java-attribute="country" name="country" required="true" type="java.lang.String" /> - <xml-element java-attribute="region" name="region" required="true" type="java.lang.String" /> - <xml-element java-attribute="latitude" name="latitude" type="java.lang.String" /> - <xml-element java-attribute="longitude" name="longitude" type="java.lang.String" /> - <xml-element java-attribute="elevation" name="elevation" type="java.lang.String" /> - <xml-element java-attribute="lata" name="lata" type="java.lang.String" /> - <xml-element java-attribute="ctagPools" name="ctag-pools" type="inventory.aai.att.com.v9.CtagPools" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical locations that can house cloud-regions." /> - <xml-property name="indexedProps" value="identity-url,data-center-code,complex-name,physical-location-id" /> - <xml-property name="searchable" value="physical-location-id,data-center-code,complex-name,street1,street2,postal-code" /> - <xml-property name="uniqueProps" value="physical-location-id" /> - <xml-property name="container" value="complexes" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - <xml-property name="geoProps" value="latitude,longitude" /> - <xml-property name="geoLat" value="latitude" /> - <xml-property name="geoLong" value="longitude" /> - </xml-properties> - </java-type> - - <java-type name="CtagPools"> - <xml-root-element name="ctag-pools" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagPool" name="ctag-pool" type="inventory.aai.att.com.v9.CtagPool" /> - </java-attributes> - </java-type> - - <java-type name="CtagPool"> - <xml-root-element name="ctag-pool" /> - <java-attributes> - <xml-element java-attribute="targetPe" name="target-pe" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="The Target provider edge router" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagPoolPurpose" name="ctag-pool-purpose" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Describes what the intended purpose of this pool is." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ctagValues" name="ctag-values" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Comma separated list of ctags" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="A collection of C tags (vlan tags) grouped for a specific purpose." /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="complex" /> - <xml-property name="container" value="ctag-pools" /> - </xml-properties> - </java-type> - - <java-type name="Tenants"> - <xml-properties> - <xml-property name="description" value="Collection of openstack tenants." /> - </xml-properties> - <xml-root-element name="tenants" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="tenant" name="tenant" type="inventory.aai.att.com.v9.Tenant" /> - </java-attributes> - </java-type> - - <java-type name="Tenant"> - <xml-root-element name="tenant" /> - <java-attributes> - <xml-element java-attribute="tenantId" name="tenant-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id relative to the cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tenantName" name="tenant-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Readable name of tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vservers" name="vservers" type="inventory.aai.att.com.v9.Vservers" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack tenant" /> - <xml-property name="nameProps" value="tenant-name" /> - <xml-property name="indexedProps" value="tenant-name,tenant-id" /> - <xml-property name="searchable" value="tenant-id,tenant-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="tenants" /> - </xml-properties> - </java-type> - - <java-type name="Vservers"> - <xml-properties> - <xml-property name="description" value="Collection of virtual Servers, aka virtual machines or VMs." /> - </xml-properties> - <xml-root-element name="vservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vserver" name="vserver" type="inventory.aai.att.com.v9.Vserver" /> - </java-attributes> - </java-type> - - <java-type name="Vserver"> - <xml-root-element name="vserver" /> - <java-attributes> - <xml-element java-attribute="vserverId" name="vserver-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier for this vserver relative to its tenant" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName" name="vserver-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverName2" name="vserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternative name of vserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vserverSelflink" name="vserver-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumes" name="volumes" type="inventory.aai.att.com.v9.Volumes" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.att.com.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Servers, aka virtual machine or VM." /> - <xml-property name="nameProps" value="vserver-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2" /> - <xml-property name="searchable" value="vserver-id,vserver-name,vserver-name2" /> - <xml-property name="dependentOn" value="tenant" /> - <xml-property name="container" value="vservers" /> - </xml-properties> - </java-type> - - <java-type name="LInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of logical interfaces." /> - </xml-properties> - <xml-root-element name="l-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.att.com.v9.LInterface" /> - </java-attributes> - </java-type> - - <java-type name="LInterface"> - <xml-root-element name="l-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name given to the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="MAC address for the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.att.com.v9.Vlans" /> - <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.att.com.v9.SriovVfs" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.att.com.v9.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.att.com.v9.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical interfaces, e.g., a vnic." /> - <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name" /> - <xml-property name="dependentOn" value="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface" /> - <xml-property name="container" value="l-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="SriovVfs"> - <xml-properties> - <xml-property name="description" value="Collection of SR-IOV Virtual Functions." /> - </xml-properties> - <xml-root-element name="sriov-vfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sriovVf" name="sriov-vf" type="inventory.aai.att.com.v9.SriovVf" /> - </java-attributes> - </java-type> - <java-type name="SriovVf"> - <xml-root-element name="sriov-vf" /> - <java-attributes> - <xml-element java-attribute="pciId" name="pci-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="PCI ID used to identify the sriov-vf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanFilter" name="vf-vlan-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacFilter" name="vf-mac-filter" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanStrip" name="vf-vlan-strip" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfVlanAntiSpoofCheck" name="vf-vlan-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMacAntiSpoofCheck" name="vf-mac-anti-spoof-check" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfMirrors" name="vf-mirrors" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfBroadcastAllow" name="vf-broadcast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownMulticastAllow" name="vf-unknown-multicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfUnknownUnicastAllow" name="vf-unknown-unicast-allow" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfInsertStag" name="vf-insert-stag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="This option, if set to true, instructs to insert outer tag after traffic comes out of VM." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfLinkStatus" name="vf-link-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This option is used to set the link status. Valid values as of 1607 are on, off, and auto." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="SR-IOV Virtual Function (not to be confused with virtual network function)" /> - <xml-property name="indexedProps" value="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="sriov-vfs" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv4AddressList"> - <xml-root-element name="l3-interface-ipv4-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 32 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv4 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Vlans"> - <xml-root-element name="vlans" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.att.com.v9.Vlan" /> - </java-attributes> - </java-type> - - <java-type name="Vlan"> - <xml-root-element name="vlan" /> - <java-attributes> - <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String that identifies the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to describe (the service associated with) the vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnId" name="vpn-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.att.com.v9.L3InterfaceIpv4AddressList" /> - <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.att.com.v9.L3InterfaceIpv6AddressList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Definition of vlan" /> - <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-id" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="dependentOn" value="l-interface" /> - <xml-property name="container" value="vlans" /> - </xml-properties> - </java-type> - - <java-type name="L3InterfaceIpv6AddressList"> - <xml-root-element name="l3-interface-ipv6-address-list" /> - <java-attributes> - <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="IP address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Prefix length, 128 for single address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Inner VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Outer VLAN tag" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Indicator of fixed or floating address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of the interface that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of subnet that address belongs to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPv6 Address Range" /> - <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" /> - <xml-property name="dependentOn" value="vlan,l-interface" /> - </xml-properties> - </java-type> - - <java-type name="Volumes"> - <xml-properties> - <xml-property name="description" value="Collection of ephemeral Block storage volumes." /> - </xml-properties> - <xml-root-element name="volumes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="volume" name="volume" type="inventory.aai.att.com.v9.Volume" /> - </java-attributes> - </java-type> - - <java-type name="Volume"> - <xml-root-element name="volume" /> - <java-attributes> - <xml-element java-attribute="volumeId" name="volume-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of block storage volume relative to the vserver." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="volumeSelflink" name="volume-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Ephemeral Block storage volume." /> - <xml-property name="indexedProps" value="volume-id" /> - <xml-property name="dependentOn" value="vserver" /> - <xml-property name="container" value="volumes" /> - </xml-properties> - </java-type> - - <java-type name="Flavors"> - <xml-properties> - <xml-property name="description" value="Collection of openstack flavors." /> - </xml-properties> - <xml-root-element name="flavors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="flavor" name="flavor" type="inventory.aai.att.com.v9.Flavor" /> - </java-attributes> - </java-type> - - <java-type name="Flavor"> - <xml-root-element name="flavor" /> - <java-attributes> - <xml-element java-attribute="flavorId" name="flavor-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Flavor id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorName" name="flavor-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Flavor name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorVcpus" name="flavor-vcpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of CPUs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorRam" name="flavor-ram" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of memory" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisk" name="flavor-disk" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorEphemeral" name="flavor-ephemeral" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Amount of ephemeral disk space" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSwap" name="flavor-swap" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="amount of swap space allocation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorIsPublic" name="flavor-is-public" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="whether flavor is available to all users or private to the tenant it was created in." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorSelflink" name="flavor-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="flavorDisabled" name="flavor-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="Boolean as to whether this flavor is no longer enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack flavor." /> - <xml-property name="nameProps" value="flavor-name" /> - <xml-property name="indexedProps" value="flavor-name,flavor-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="flavors" /> - </xml-properties> - </java-type> - - <java-type name="Snapshots"> - <xml-properties> - <xml-property name="description" value="Collection of openstack snapshots" /> - </xml-properties> - <xml-root-element name="snapshots" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="snapshot" name="snapshot" type="inventory.aai.att.com.v9.Snapshot" /> - </java-attributes> - </java-type> - - <java-type name="Snapshot"> - <xml-root-element name="snapshot" /> - <java-attributes> - <xml-element java-attribute="snapshotId" name="snapshot-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Snapshot id, this is the key UUID assoc associated in glance with the snapshots." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotName" name="snapshot-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Snapshot name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotArchitecture" name="snapshot-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsDistro" name="snapshot-os-distro" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotOsVersion" name="snapshot-os-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="snapshotSelflink" name="snapshot-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="prevSnapshotId" name="prev-snapshot-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field contains the UUID of the previous snapshot (if any)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack snapshot" /> - <xml-property name="nameProps" value="snapshot-name" /> - <xml-property name="uniqueProps" value="snapshot-id" /> - <xml-property name="indexedProps" value="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="snapshots" /> - </xml-properties> - </java-type> - - <java-type name="GroupAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack group assignments" /> - </xml-properties> - <xml-root-element name="group-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="groupAssignment" name="group-assignment" type="inventory.aai.att.com.v9.GroupAssignment" /> - </java-attributes> - </java-type> - - <java-type name="GroupAssignment"> - <xml-root-element name="group-assignment" /> - <java-attributes> - <xml-element java-attribute="groupId" name="group-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Group id, expected to be unique across cloud-region." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupType" name="group-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group type - the type of group this instance refers to" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupName" name="group-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name - name assigned to the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupDescription" name="group-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group description - description of the group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack group-assignment used to store exclusivity groups (EG)." /> - <xml-property name="nameProps" value="group-name" /> - <xml-property name="indexedProps" value="group-id,group-type,group-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="group-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Images"> - <xml-properties> - <xml-property name="description" value="Collectio of Openstack images." /> - </xml-properties> - <xml-root-element name="images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="image" name="image" type="inventory.aai.att.com.v9.Image" /> - </java-attributes> - </java-type> - - <java-type name="Image"> - <xml-root-element name="image" /> - <java-attributes> - <xml-element java-attribute="imageId" name="image-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Image id, expected to be unique across cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageName" name="image-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Image name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageArchitecture" name="image-architecture" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operating system architecture." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsDistro" name="image-os-distro" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The common name of the operating system distribution in lowercase" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageOsVersion" name="image-os-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The operating system version as specified by the distributor." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="imageSelflink" name="image-selflink" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.att.com.v9.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack image." /> - <xml-property name="nameProps" value="image-name" /> - <xml-property name="indexedProps" value="application,image-name,application-vendor,image-id,application-version" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="images" /> - </xml-properties> - </java-type> - - <java-type name="Metadata"> - <xml-properties> - <xml-property name="description" value="Collection of metadatum (key/value pairs)" /> - </xml-properties> - <xml-root-element name="metadata" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.att.com.v9.Metadatum" /> - </java-attributes> - </java-type> - - <java-type name="Metadatum"> - <xml-root-element name="metadatum" /> - <java-attributes> - <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Key/value pairs" /> - <xml-property name="indexedProps" value="metaname" /> - <xml-property name="dependentOn" value="tenant,image,service-instance,connector,model" /> - <xml-property name="container" value="metadata" /> - </xml-properties> - </java-type> - - <java-type name="DvsSwitches"> - <xml-properties> - <xml-property name="description" value="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs." /> - </xml-properties> - <xml-root-element name="dvs-switches" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="dvsSwitch" name="dvs-switch" type="inventory.aai.att.com.v9.DvsSwitch" /> - </java-attributes> - </java-type> - - <java-type name="DvsSwitch"> - <xml-root-element name="dvs-switch" /> - <java-attributes> - <xml-element java-attribute="switchName" name="switch-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="DVS switch name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcenterUrl" name="vcenter-url" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL used to reach the vcenter" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. " /> - <xml-property name="indexedProps" value="vcenter-url,switch-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="dvs-switches" /> - </xml-properties> - </java-type> - - <java-type name="NetworkProfiles"> - <xml-properties> - <xml-property name="description" value="Collection of network profiles" /> - </xml-properties> - <xml-root-element name="network-profiles" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkProfile" name="network-profile" type="inventory.aai.att.com.v9.NetworkProfile" /> - </java-attributes> - </java-type> - - <java-type name="NetworkProfile"> - <xml-root-element name="network-profile" /> - <java-attributes> - <xml-element java-attribute="nmProfileName" name="nm-profile-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique name of network profile." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="communityString" name="community-string" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted SNMP community string" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Network profile populated by SDN-GP for SNMP" /> - <xml-property name="indexedProps" value="nm-profile-name" /> - <xml-property name="container" value="network-profiles" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="Pservers"> - <xml-properties> - <xml-property name="description" value="Collection of compute hosts." /> - </xml-properties> - <xml-root-element name="pservers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pserver" name="pserver" type="inventory.aai.att.com.v9.Pserver" /> - </java-attributes> - </java-type> - - <java-type name="Pserver"> - <xml-root-element name="pserver" /> - <java-attributes> - <xml-element java-attribute="hostname" name="hostname" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value from executing hostname on the compute node." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ptniiEquipName" name="ptnii-equip-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="PTNII name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="numberOfCpus" name="number-of-cpus" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Number of cpus" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="diskInGigabytes" name="disk-in-gigabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Disk size, in GBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ramInMegabytes" name="ram-in-megabytes" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="RAM size, in MBs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="fqdn" name="fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Fully-qualified domain name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverSelflink" name="pserver-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used to configure device, also used for troubleshooting and is IP used for traps generated by device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Serial number, may be queried" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverId" name="pserver-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of Pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="internetTopology" name="internet-topology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="internet topology of Pserver" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pserverName2" name="pserver-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="alternative pserver name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="purpose" name="purpose" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="purpose of pserver" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.att.com.v9.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.att.com.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver." /> - <xml-property name="nameProps" value="pserver-name2" /> - <xml-property name="indexedProps" value="hostname,in-maint,pserver-id,pserver-name2" /> - <xml-property name="searchable" value="hostname,pserver-name2,pserver-id,ipv4-oam-address" /> - <xml-property name="container" value="pservers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="PInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of physical interfaces." /> - </xml-properties> - <xml-root-element name="p-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.att.com.v9.PInterface" /> - </java-attributes> - </java-type> - - <java-type name="PInterface"> - <xml-root-element name="p-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the physical interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Nature of the services and connectivity on this port." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="CLEI or other specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role specification for p-interface hardware." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the physical properties of the interface." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.att.com.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Physical interface (e.g., nic)" /> - <xml-property name="indexedProps" value="interface-name" /> - <xml-property name="dependentOn" value="vpls-pe,pserver,pnf" /> - <xml-property name="container" value="p-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="LagInterfaces"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregate interfaces." /> - </xml-properties> - <xml-root-element name="lag-interfaces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.att.com.v9.LagInterface" /> - </java-attributes> - </java-type> - - <java-type name="LagInterface"> - <xml-root-element name="lag-interface" /> - <java-attributes> - <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name that identifies the link aggregate interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.att.com.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Link aggregate interface" /> - <xml-property name="indexedProps" value="interface-name" /> - <xml-property name="dependentOn" value="generic-vnf,pserver,vpe,vpls-pe,pnf" /> - <xml-property name="container" value="lag-interfaces" /> - </xml-properties> - </java-type> - - <java-type name="OamNetworks"> - <xml-properties> - <xml-property name="description" value="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. " /> - </xml-properties> - <xml-root-element name="oam-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="oamNetwork" name="oam-network" type="inventory.aai.att.com.v9.OamNetwork" /> - </java-attributes> - </java-type> - - <java-type name="OamNetwork"> - <xml-root-element name="oam-network" /> - <java-attributes> - <xml-element java-attribute="networkUuid" name="network-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of the network. Unique across a cloud-region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="cvlan-id" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Used for VNF firewall rule so customer cannot send customer traffic over this oam network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="OAM network, to be deprecated shortly. Do not use for new purposes. " /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="cvlan-tag,network-uuid,network-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="oam-networks" /> - </xml-properties> - </java-type> - - <java-type name="AvailabilityZones"> - <xml-properties> - <xml-property name="description" value="Collection of availability zones" /> - </xml-properties> - <xml-root-element name="availability-zones" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="availabilityZone" name="availability-zone" type="inventory.aai.att.com.v9.AvailabilityZone" /> - </java-attributes> - </java-type> - - <java-type name="AvailabilityZone"> - <xml-root-element name="availability-zone" /> - <java-attributes> - <xml-element java-attribute="availabilityZoneName" name="availability-zone-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Name of the availability zone. Unique across a cloud region" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="hypervisorType" name="hypervisor-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of hypervisor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Availability zone, a collection of compute hosts/pservers" /> - <xml-property name="indexedProps" value="availability-zone-name" /> - <xml-property name="dependentOn" value="cloud-region" /> - <xml-property name="container" value="availability-zones" /> - </xml-properties> - </java-type> - - <java-type name="VirtualDataCenters"> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - </xml-properties> - <xml-root-element name="virtual-data-centers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="virtualDataCenter" name="virtual-data-center" type="inventory.aai.att.com.v9.VirtualDataCenter" /> - </java-attributes> - </java-type> - - <java-type name="VirtualDataCenter"> - <xml-root-element name="virtual-data-center" /> - <java-attributes> - <xml-element java-attribute="vdcId" name="vdc-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the vdc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdcName" name="vdc-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the virtual data center" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual organization of cloud infrastructure elements in a data center context" /> - <xml-property name="nameProps" value="vdc-name" /> - <xml-property name="indexedProps" value="vdc-name,vdc-id" /> - <xml-property name="container" value="virtual-data-centers" /> - <xml-property name="namespace" value="cloud-infrastructure" /> - </xml-properties> - </java-type> - - <java-type name="LicenseManagement"> - <xml-root-element name="license-management" /> - <java-attributes> - <xml-element java-attribute="licenseKeyResources" name="license-key-resources" type="inventory.aai.att.com.v9.LicenseKeyResources" /> - </java-attributes> - </java-type> - - <java-type name="LicenseKeyResources"> - <xml-root-element name="license-key-resources" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="licenseKeyResource" name="license-key-resource" type="inventory.aai.att.com.v9.LicenseKeyResource" /> - </java-attributes> - </java-type> - - <java-type name="LicenseKeyResource"> - <xml-root-element name="license-key-resource" /> - <java-attributes> - <xml-element java-attribute="attUuid" name="att-uuid" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="assignmentType" name="assignment-type" type="java.lang.String" /> - <xml-element java-attribute="assignmentStatus" name="assignment-status" type="java.lang.String" /> - <xml-element java-attribute="assignmentGroupUuid" name="assignment-group-uuid" required="true" type="java.lang.String" /> - <xml-element java-attribute="assignmentDate" name="assignment-date" type="java.lang.String" /> - <xml-element java-attribute="name" name="name" type="java.lang.String" /> - <xml-element java-attribute="modelUuid" name="model-uuid" type="java.lang.String" /> - <xml-element java-attribute="modelVersion" name="model-version" type="java.lang.String" /> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String" /> - <xml-element java-attribute="licenseKeyFileUrl" name="license-key-file-url" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="supplierReleaseList" name="supplier-release-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="nameProps" value="name" /> - <xml-property name="indexedProps" value="assignment-group-uuid,att-uuid,name" /> - <xml-property name="uniqueProps" value="att-uuid" /> - <xml-property name="container" value="license-key-resources" /> - <xml-property name="namespace" value="license-management" /> - </xml-properties> - </java-type> - - <java-type name="Business"> - <xml-properties> - <xml-property name="description" value="Namespace for business related constructs" /> - </xml-properties> - <xml-root-element name="business" /> - <java-attributes> - <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.att.com.v9.Connectors" /> - <xml-element java-attribute="customers" name="customers" type="inventory.aai.att.com.v9.Customers" /> - </java-attributes> - </java-type> - - <java-type name="Connectors"> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - </xml-properties> - <xml-root-element name="connectors" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.att.com.v9.Connector" /> - </java-attributes> - </java-type> - - <java-type name="Connector"> - <xml-root-element name="connector" /> - <java-attributes> - <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of resource instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.att.com.v9.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" /> - <xml-property name="indexedProps" value="resource-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version" /> - <xml-property name="container" value="connectors" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="Customers"> - <xml-properties> - <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." /> - </xml-properties> - <xml-root-element name="customers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.att.com.v9.Customer" /> - </java-attributes> - </java-type> - - <java-type name="Customer"> - <xml-root-element name="customer" /> - <java-attributes> - <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." /> - <xml-property name="defaultValue" value="CUST" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.att.com.v9.ServiceSubscriptions" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." /> - <xml-property name="nameProps" value="subscriber-name" /> - <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" /> - <xml-property name="searchable" value="global-customer-id,subscriber-name" /> - <xml-property name="uniqueProps" value="global-customer-id,subscriber-name" /> - <xml-property name="alternateKeys1" value="subscriber-name" /> - <xml-property name="container" value="customers" /> - <xml-property name="namespace" value="business" /> - </xml-properties> - </java-type> - - <java-type name="ServiceSubscriptions"> - <xml-properties> - <xml-property name="description" value="Collection of objects that group service instances." /> - </xml-properties> - <xml-root-element name="service-subscriptions" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.att.com.v9.ServiceSubscription" /> - </java-attributes> - </java-type> - - <java-type name="ServiceSubscription"> - <xml-root-element name="service-subscription" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This property will be deleted from A&AI in the near future. Only stop gap solution." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.att.com.v9.ServiceInstances"> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Object that group service instances." /> - <xml-property name="indexedProps" value="service-type" /> - <xml-property name="dependentOn" value="customer" /> - <xml-property name="container" value="service-subscriptions" /> - <xml-property name="crossEntityReference" value="service-instance,service-type" /> - </xml-properties> - </java-type> - - <java-type name="ServiceInstances"> - <xml-properties> - <xml-property name="description" value="Collection of service instances" /> - </xml-properties> - <xml-root-element name="service-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.att.com.v9.ServiceInstance" /> - </java-attributes> - </java-type> - - <java-type name="ServiceInstance"> - <xml-root-element name="service-instance" /> - <java-attributes> - <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Uniquely identifies this instance of a service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="This field will store a name assigned to the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates the total bandwidth to be used for this service." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL customers will use to access the vHN Portal." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Operational status of the service-instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.att.com.v9.Metadata" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Instance of a service" /> - <xml-property name="indexedProps" value="service-instance-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id" /> - <xml-property name="nameProps" value="service-instance-name" /> - <xml-property name="searchable" value="service-instance-id,service-instance-name" /> - <xml-property name="uniqueProps" value="service-instance-id" /> - <xml-property name="dependentOn" value="service-subscription" /> - <xml-property name="container" value="service-instances" /> - </xml-properties> - </java-type> - - <java-type name="ServiceDesignAndCreation"> - <xml-properties> - <xml-property name="description" value="Namespace for objects managed by ASDC" /> - </xml-properties> - <xml-root-element name="service-design-and-creation" /> - <java-attributes> - <xml-element java-attribute="vnfImages" name="vnf-images" type="inventory.aai.att.com.v9.VnfImages" /> - <xml-element java-attribute="services" name="services" type="inventory.aai.att.com.v9.Services" /> - <xml-element java-attribute="serviceCapabilities" name="service-capabilities" type="inventory.aai.att.com.v9.ServiceCapabilities" /> - <xml-element java-attribute="models" name="models" type="inventory.aai.att.com.v9.Models" /> - <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.att.com.v9.NamedQueries" /> - </java-attributes> - </java-type> - - <java-type name="VnfImages"> - <xml-properties> - <xml-property name="description" value="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - </xml-properties> - <xml-root-element name="vnf-images" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfImage" name="vnf-image" type="inventory.aai.att.com.v9.VnfImage" /> - </java-attributes> - </java-type> - - <java-type name="VnfImage"> - <xml-root-element name="vnf-image" /> - <java-attributes> - <xml-element java-attribute="attUuid" name="att-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of this asset" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="application" name="application" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The application that the image instantiates." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVendor" name="application-vendor" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The vendor of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The version of the application." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge." /> - <xml-property name="indexedProps" value="application,att-uuid,application-vendor,application-version" /> - <xml-property name="uniqueProps" value="att-uuid" /> - <xml-property name="container" value="vnf-images" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Services"> - <xml-properties> - <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC." /> - </xml-properties> - <xml-root-element name="services" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.att.com.v9.Service" /> - </java-attributes> - </java-type> - - <java-type name="Service"> - <xml-root-element name="service" /> - <java-attributes> - <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description of the service" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="URL to endpoint where AAI can get more details" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="service version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC." /> - <xml-property name="indexedProps" value="service-description,service-id" /> - <xml-property name="container" value="services" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="ServiceCapabilities"> - <xml-properties> - <xml-property name="description" value="Collection of service capabilities." /> - </xml-properties> - <xml-root-element name="service-capabilities" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="serviceCapability" name="service-capability" type="inventory.aai.att.com.v9.ServiceCapability" /> - </java-attributes> - </java-type> - - <java-type name="ServiceCapability"> - <xml-root-element name="service-capability" /> - <java-attributes> - <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this." /> - <xml-property name="indexedProps" value="service-type,vnf-type" /> - <xml-property name="container" value="service-capabilities" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - </java-type> - - <java-type name="Network"> - <xml-properties> - <xml-property name="description" value="Namespace for network inventory resources." /> - </xml-properties> - <xml-root-element name="network" /> - <java-attributes> - <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.att.com.v9.LogicalLinks" /> - <xml-element java-attribute="sitePairSets" name="site-pair-sets" type="inventory.aai.att.com.v9.SitePairSets" /> - <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.att.com.v9.VpnBindings" /> - <xml-element java-attribute="vplsPes" name="vpls-pes" type="inventory.aai.att.com.v9.VplsPes" /> - <xml-element java-attribute="multicastConfigurations" name="multicast-configurations" type="inventory.aai.att.com.v9.MulticastConfigurations" /> - <xml-element java-attribute="vces" name="vces" type="inventory.aai.att.com.v9.Vces" /> - <xml-element java-attribute="vpes" name="vpes" type="inventory.aai.att.com.v9.Vpes" /> - <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.att.com.v9.Vnfcs" /> - <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.att.com.v9.L3Networks" /> - <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.att.com.v9.NetworkPolicies" /> - <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.att.com.v9.GenericVnfs" /> - <xml-element java-attribute="lagLinks" name="lag-links" type="inventory.aai.att.com.v9.LagLinks" /> - <xml-element java-attribute="newvces" name="newvces" type="inventory.aai.att.com.v9.Newvces" /> - <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.att.com.v9.Pnfs" /> - <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.att.com.v9.PhysicalLinks" /> - <xml-element java-attribute="ipsecConfigurations" name="ipsec-configurations" type="inventory.aai.att.com.v9.IpsecConfigurations" /> - <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.att.com.v9.RouteTableReferences" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of logical connections" /> - </xml-properties> - <xml-root-element name="logical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.att.com.v9.LogicalLink" /> - </java-attributes> - </java-type> - - <java-type name="LogicalLink"> - <xml-root-element name="logical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of logical link, e.g., evc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4, v6, or ds for dual stack (should be att-ip-version)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="For example, static or BGP" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of operational status of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indication of the network use of the logical link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="linkId" name="link-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the logical-link, SDNC generates this." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" /> - <xml-property name="indexedProps" value="link-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,link-id" /> - <xml-property name="uniqueProps" value="link-id" /> - <xml-property name="container" value="logical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name" /> - </xml-properties> - </java-type> - - <java-type name="SitePairSets"> - <xml-properties> - <xml-property name="description" value="Collection of sets of instances for probes related to generic-vnf" /> - </xml-properties> - <xml-root-element name="site-pair-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePairSet" name="site-pair-set" type="inventory.aai.att.com.v9.SitePairSet" /> - </java-attributes> - </java-type> - - <java-type name="SitePairSet"> - <xml-root-element name="site-pair-set" /> - <java-attributes> - <xml-element java-attribute="sitePairSetId" name="site-pair-set-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of site pair set." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routingInstances" name="routing-instances" type="inventory.aai.att.com.v9.RoutingInstances" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Set of instances for probes used to measure service level agreements" /> - <xml-property name="indexedProps" value="site-pair-set-id" /> - <xml-property name="uniqueProps" value="site-pair-set-id" /> - <xml-property name="container" value="site-pair-sets" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="RoutingInstances"> - <xml-properties> - <xml-property name="description" value="set of probes related to generic-vnf routing instance" /> - </xml-properties> - <xml-root-element name="routing-instances" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routingInstance" name="routing-instance" type="inventory.aai.att.com.v9.RoutingInstance" /> - </java-attributes> - </java-type> - - <java-type name="RoutingInstance"> - <xml-root-element name="routing-instance" /> - <java-attributes> - <xml-element java-attribute="routingInstanceId" name="routing-instance-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of routing instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpmOwner" name="rpm-owner" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rpm owner" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sitePairs" name="site-pairs" type="inventory.aai.att.com.v9.SitePairs" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="routing-instance-id" /> - <xml-property name="uniqueProps" value="routing-instance-id" /> - <xml-property name="dependentOn" value="site-pair-set" /> - <xml-property name="container" value="routing-instances" /> - </xml-properties> - </java-type> - - <java-type name="SitePairs"> - <xml-properties> - <xml-property name="description" value="probe within a set" /> - </xml-properties> - <xml-root-element name="site-pairs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="sitePair" name="site-pair" type="inventory.aai.att.com.v9.SitePair" /> - </java-attributes> - </java-type> - - <java-type name="SitePair"> - <xml-root-element name="site-pair" /> - <java-attributes> - <xml-element java-attribute="sitePairId" name="site-pair-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceIp" name="source-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationIp" name="destination-ip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Prefix address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version, v4, v6" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationHostname" name="destination-hostname" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Hostname of the destination equipment to which SLAs are measured against." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="destinationEquipType" name="destination-equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The type of destinatination equipment. Could be Router, UCPE, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="classesOfService" name="classes-of-service" type="inventory.aai.att.com.v9.ClassesOfService" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="site-pair-id" /> - <xml-property name="uniqueProps" value="site-pair-id" /> - <xml-property name="dependentOn" value="routing-instance" /> - <xml-property name="container" value="site-pairs" /> - </xml-properties> - </java-type> - - <java-type name="ClassesOfService"> - <xml-properties> - <xml-property name="description" value="class-of-service of probe" /> - </xml-properties> - <xml-root-element name="classes-of-service" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="classOfService" name="class-of-service" type="inventory.aai.att.com.v9.ClassOfService" /> - </java-attributes> - </java-type> - - <java-type name="ClassOfService"> - <xml-root-element name="class-of-service" /> - <java-attributes> - <xml-element java-attribute="cos" name="cos" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeId" name="probe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="probeType" name="probe-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type of probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="cos" /> - <xml-property name="dependentOn" value="site-pair" /> - <xml-property name="container" value="classes-of-service" /> - </xml-properties> - </java-type> - - <java-type name="VpnBindings"> - <xml-root-element name="vpn-bindings" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpnBinding" name="vpn-binding" type="inventory.aai.att.com.v9.VpnBinding" /> - </java-attributes> - </java-type> - - <java-type name="VpnBinding"> - <xml-root-element name="vpn-binding" /> - <java-attributes> - <xml-element java-attribute="vpnId" name="vpn-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="VPN ID, globally unique within A&AI" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnName" name="vpn-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="VPN Name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="globalRouteTarget" name="global-route-target" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Number used to identify a VPN, globally unique in the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpnPlatform" name="vpn-platform" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the platform associated with the VPN example AVPN, Mobility" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList"> - <xml-properties> - <xml-property name="description" value="l3-networks relate to vpn-bindings" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPN binding" /> - <xml-property name="nameProps" value="vpn-name" /> - <xml-property name="indexedProps" value="vpn-name,vpn-id,global-route-target" /> - <xml-property name="searchable" value="vpn-id,vpn-name" /> - <xml-property name="uniqueProps" value="vpn-id" /> - <xml-property name="container" value="vpn-bindings" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="VplsPes"> - <xml-properties> - <xml-property name="description" value="Collection of VPLS Provider Edge routers" /> - </xml-properties> - <xml-root-element name="vpls-pes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vplsPe" name="vpls-pe" type="inventory.aai.att.com.v9.VplsPe" /> - </java-attributes> - </java-type> - - <java-type name="VplsPe"> - <xml-root-element name="vpls-pe" /> - <java-attributes> - <xml-element java-attribute="equipmentName" name="equipment-name" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPLS-PE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.att.com.v9.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.att.com.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="VPLS Provider Edge routers." /> - <xml-property name="indexedProps" value="prov-status,equipment-name" /> - <xml-property name="container" value="vpls-pes" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="MulticastConfigurations"> - <xml-properties> - <xml-property name="description" value="multicast configuration of generic-vnf ip-address" /> - </xml-properties> - <xml-root-element name="multicast-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="multicastConfiguration" name="multicast-configuration" type="inventory.aai.att.com.v9.MulticastConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="MulticastConfiguration"> - <xml-root-element name="multicast-configuration" /> - <java-attributes> - <xml-element java-attribute="multicastConfigurationId" name="multicast-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of multicast configuration." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="multicastProtocol" name="multicast-protocol" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="protocol of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="rpType" name="rp-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="rp type of multicast configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="multicast-configuration-id" /> - <xml-property name="uniqueProps" value="multicast-configuration-id" /> - <xml-property name="container" value="multicast-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Vces"> - <xml-properties> - <xml-property name="description" value="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated." /> - </xml-properties> - <xml-root-element name="vces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vce" name="vce" type="inventory.aai.att.com.v9.Vce" /> - </java-attributes> - </java-type> - - <java-type name="Vce"> - <xml-root-element name="vce" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC. Expect this to change as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="License key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network role being played by this VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vpeId" name="vpe-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID of VPE connected to this VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v6VceWanAddress" name="v6-vce-wan-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Valid v6 IP address for the WAN Link on this router. Implied length of /64." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Entitlement resource uuid" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroups" name="port-groups" type="inventory.aai.att.com.v9.PortGroups" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id" /> - <xml-property name="searchable" value="vpe-id,vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vces" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="PortGroups"> - <xml-root-element name="port-groups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="portGroup" name="port-group" type="inventory.aai.att.com.v9.PortGroup" /> - </java-attributes> - </java-type> - - <java-type name="PortGroup"> - <xml-root-element name="port-group" /> - <java-attributes> - <xml-element java-attribute="interfaceId" name="interface-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of the interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkName" name="neutron-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network name of this Interface" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupId" name="port-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique ID for port group in vmware" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="portGroupName" name="port-group-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Likely to duplicate value of neutron network name" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="switchName" name="switch-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="DVS or standard switch name (should be non-null for port groups associated with DVS)" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cvlanTags" name="cvlan-tags" type="inventory.aai.att.com.v9.CvlanTags" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Used to capture the network interfaces of this VCE" /> - <xml-property name="nameProps" value="port-group-name" /> - <xml-property name="indexedProps" value="port-group-id,heat-stack-id,interface-id,interface-name,switch-name" /> - <xml-property name="dependentOn" value="vce" /> - <xml-property name="container" value="port-groups" /> - </xml-properties> - </java-type> - - <java-type name="CvlanTags"> - <xml-root-element name="cvlan-tags" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="cvlanTagEntry" name="cvlan-tag-entry" type="inventory.aai.att.com.v9.CvlanTagEntry" /> - </java-attributes> - </java-type> - - <java-type name="CvlanTagEntry"> - <xml-root-element name="cvlan-tag-entry" /> - <java-attributes> - <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="See mis-na-virtualization-platform.yang" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="dependentOn" value="port-group" /> - <xml-property name="indexedProps" value="cvlan-tag" /> - <xml-property name="container" value="cvlan-tags" /> - </xml-properties> - </java-type> - - <java-type name="Vpes"> - <xml-properties> - <xml-property name="description" value="Virtual provider edge router. In 1504, A&AI will populate this object through an M&P and tool provided to operations." /> - </xml-properties> - <xml-root-element name="vpes" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vpe" name="vpe" type="inventory.aai.att.com.v9.Vpe" /> - </java-attributes> - </java-type> - - <java-type name="Vpe"> - <xml-root-element name="vpe" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="License key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer"> - <xml-properties> - <xml-property name="description" value="Prefix length for oam-address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Gateway address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="v4Loopback0IpAddress" name="v4-loopback0-ip-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="Temporary location for stag to get to VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VPE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the vpe operation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether vpe access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.att.com.v9.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.att.com.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Relationship-list must include related to info for complex." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="vpes" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - </xml-properties> - </java-type> - - <java-type name="Vnfcs"> - <xml-properties> - <xml-property name="description" value="virtual network components associated with a vserver from application controller." /> - </xml-properties> - <xml-root-element name="vnfcs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.att.com.v9.Vnfc" /> - </java-attributes> - </java-type> - - <java-type name="Vnfc"> - <xml-root-element name="vnfc" /> - <java-attributes> - <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vnfc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcFunctionCode" name="vnfc-function-code" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="function code" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfcType" name="vnfc-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="type" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="prov status of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Oam V4 vip address of this vnfc" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group notation of VNFC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation" /> - <xml-property name="searchable" value="vnfc-name" /> - <xml-property name="container" value="vnfcs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="L3Networks"> - <xml-root-element name="l3-networks" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.att.com.v9.L3Network" /> - </java-attributes> - </java-type> - - <java-type name="L3Network"> - <xml-root-element name="l3-network" /> - <java-attributes> - <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Network ID, should be uuid. Unique across A&AI." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the network, governed by some naming convention.." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkType" name="network-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the network - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Role the network plans - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network technology - who defines these values?" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron network id of this Interface" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBoundToVpn" name="is-bound-to-vpn" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Set to true if bound to VPN" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="network role instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the network" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the physical network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a provider network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is a shared network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="boolean indicatating whether or not network is an external network." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.att.com.v9.Subnets" /> - <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.att.com.v9.CtagAssignments" /> - <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.att.com.v9.SegmentationAssignments" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" > - <xml-properties> - <xml-property name="description" value="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding" /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Generic network definition" /> - <xml-property name="nameProps" value="network-name" /> - <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-network-fqdn" /> - <xml-property name="searchable" value="network-id,network-name" /> - <xml-property name="uniqueProps" value="network-id" /> - <xml-property name="container" value="l3-networks" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="NetworkPolicies"> - <xml-root-element name="network-policies" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="networkPolicy" name="network-policy" type="inventory.aai.att.com.v9.NetworkPolicy" /> - </java-attributes> - </java-type> - <java-type name="NetworkPolicy"> - <xml-root-element name="network-policy" /> - <java-attributes> - <xml-element java-attribute="networkPolicyId" name="network-policy-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID representing unique key to this instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkPolicyFqdn" name="network-policy-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contrail FQDN for the policy" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID for the openStack Heat instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="nameProps" value="network-policy-fqdn" /> - <xml-property name="indexedProps" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="searchable" value="network-policy-id,network-policy-fqdn" /> - <xml-property name="uniqueProps" value="network-policy-id" /> - <xml-property name="container" value="network-policies" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - <java-type name="CtagAssignments"> - <xml-root-element name="ctag-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.att.com.v9.CtagAssignment" /> - </java-attributes> - </java-type> - - <java-type name="CtagAssignment"> - <xml-root-element name="ctag-assignment" /> - <java-attributes> - <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true"> - <xml-properties> - <xml-property name="description" value="id." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="vlan-id-inner" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="ctag-assignments" /> - </xml-properties> - </java-type> - - <java-type name="Subnets"> - <xml-root-element name="subnets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.att.com.v9.Subnet" /> - </java-attributes> - </java-type> - - <java-type name="Subnet"> - <xml-root-element name="subnet" /> - <java-attributes> - <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Subnet ID, should be UUID." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name associated with the subnet." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Neutron id of this subnet" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="gateway ip address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="network start address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="cidr mask" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ip version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="dhcpEnabled" name="dhcp-enabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="dhcp enabled" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the start address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the last address reserved for use by dhcp" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="indexedProps" value="subnet-id,subnet-name" /> - <xml-property name="nameProps" value="subnet-name" /> - <xml-property name="uniqueProps" value="subnet-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="subnets" /> - </xml-properties> - </java-type> - - <java-type name="GenericVnfs"> - <xml-properties> - <xml-property name="description" value="Collection of VNFs" /> - </xml-properties> - <xml-root-element name="generic-vnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.att.com.v9.GenericVnf" /> - </java-attributes> - </java-type> - - <java-type name="GenericVnf"> - <xml-root-element name="generic-vnf" /> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Unique identifier of service from ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." /> - <xml-property name="suggestibleOnSearch" value="true"/> - <xml-property name="suggestionVerbs" value="is,in,at,with,on,off,changed,changing"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="License key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, used by MSO." /> - <xml-property name="suggestibleOnSearch" value="true"/> - <xml-property name="suggestionVerbs" value="is,in,at,with,on,off,changed,changing"/> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by ATT or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 Loopback address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 management address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long"> - <xml-properties> - <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="details regarding the generic-vnf operation" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="description" value="indicates whether generic-vnf access uses SSH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementAssignmentGroupUuid" name="entitlement-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the Entitlement group used for licensing VNFs" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the specific entitlement resource" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseAssignmentGroupUuid" name="license-assignment-group-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the license assignment group" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKeyUuid" name="license-key-uuid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="UUID of the actual license resource" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="as-number of the VNF" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="represents sub zone of the rr plane" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.att.com.v9.LInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.att.com.v9.LagInterfaces" /> - <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.att.com.v9.VfModules" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="General purpose VNF" /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version" /> - <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="container" value="generic-vnfs" /> - <xml-property name="namespace" value="network" /> - <xml-property name="extends" value="vnf" /> - <xml-property name="containsSuggestibleProps" value="true" /> - <xml-property name="suggestionAliases" value="VNFs" /> - </xml-properties> - </java-type> - - <java-type name="VfModules"> - <xml-properties> - <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs" /> - </xml-properties> - <xml-root-element name="vf-modules" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.att.com.v9.VfModule" /> - </java-attributes> - </java-type> - - <java-type name="VfModule"> - <xml-root-element name="vf-module" /> - <java-attributes> - <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique ID of vf-module." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of vf-module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO" /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="isBaseVfModule" name="is-base-vf-module" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="used to indicate whether or not this object is base vf module" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelId" name="persona-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model id for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC model version for this resource or service model." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&AI widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="the Contrail unique ID for a service-instance" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="a deployment unit of VNFCs" /> - <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,persona-model-id,persona-model-version,widget-model-id,widget-model-version,contrail-service-instance-fqdn" /> - <xml-property name="searchable" value="vf-module-id, vf-module-name" /> - <xml-property name="dependentOn" value="generic-vnf" /> - <xml-property name="container" value="vf-modules" /> - </xml-properties> - </java-type> - - - <java-type name="LagLinks"> - <xml-properties> - <xml-property name="description" value="Collection of link aggregation connections" /> - </xml-properties> - <xml-root-element name="lag-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="lagLink" name="lag-link" type="inventory.aai.att.com.v9.LagLink" /> - </java-attributes> - </java-type> - - <java-type name="LagLink"> - <xml-root-element name="lag-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Alphabetical concatenation of lag-interface names" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="LAG links can connect lag-interfaces" /> - <xml-property name="indexedProps" value="link-name" /> - <xml-property name="container" value="lag-links" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Newvces"> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - </xml-properties> - <xml-root-element name="newvces" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="newvce" name="newvce" type="inventory.aai.att.com.v9.Newvce" /> - </java-attributes> - </java-type> - - <java-type name="Newvce"> - <xml-root-element name="newvce" /> - <java-attributes> - <xml-element java-attribute="vnfId2" name="vnf-id2" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF, can't use same attribute name right now until we promote this new object" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Alternate name of VNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded and clients should expect changes to occur in the future to this field as ASDC matures." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="operationalState" name="operational-state" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicator for whether the resource is considered operational" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="License key" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address)." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Client should send valid enumerated value, e.g., VPE." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 Loopback0 address" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.att.com.v9.LInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." /> - <xml-property name="nameProps" value="vnf-name" /> - <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2" /> - <xml-property name="searchable" value="vnf-id2,vnf-name,vnf-name2" /> - <xml-property name="uniqueProps" value="vnf-id2" /> - <xml-property name="container" value="newvces" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="Pnfs"> - <xml-properties> - <xml-property name="description" value="Collection of Physical Network Functions." /> - </xml-properties> - <xml-root-element name="pnfs" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.att.com.v9.Pnf" /> - </java-attributes> - </java-type> - - <java-type name="Pnf"> - <xml-root-element name="pnf" /> - <java-attributes> - <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="unique name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="name of Physical Network Function." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="source of name2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="id of pnf" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment type. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Equipment model. Source of truth should define valid values." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="identifier of managed by ATT or customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="orchestration-status is the status of orchestration on the PNF." /> - </xml-properties> - </xml-element> - <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean"> - <xml-properties> - <xml-property name="defaultValue" value="false"/> - <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.att.com.v9.PInterfaces" /> - <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.att.com.v9.LagInterfaces" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE." /> - <xml-property name="indexedProps" value="pnf-name,orchestration-status" /> - <xml-property name="searchable" value="pnf-name" /> - <xml-property name="uniqueProps" value="pnf-name" /> - <xml-property name="container" value="pnfs" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="PhysicalLinks"> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - </xml-properties> - <xml-root-element name="physical-links" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.att.com.v9.PhysicalLink" /> - </java-attributes> - </java-type> - - <java-type name="PhysicalLink"> - <xml-root-element name="physical-link" /> - <java-attributes> - <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the numeric part of the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Captures the units corresponding to the speed" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Circuit it" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Dual access mode (e.g., primary, secondary" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="To provide information on who manages this circuit. A&AI or 3rd party transport provider" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the service Provider on this link." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" /> - <xml-property name="indexedProps" value="circuit-id,link-name" /> - <xml-property name="alternateKeys1" value="circuit-id" /> - <xml-property name="container" value="physical-links" /> - <xml-property name="namespace" value="network" /> - <xml-property name="searchable" value="link-name,circuit-id" /> - </xml-properties> - </java-type> - - <java-type name="VigServers"> - <xml-root-element name="vig-servers" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="vigServer" name="vig-server" type="inventory.aai.att.com.v9.VigServer" /> - </java-attributes> - </java-type> - - <java-type name="VigServer"> - <xml-root-element name="vig-server" /> - <java-attributes> - <xml-element java-attribute="vigAddressType" name="vig-address-type" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="indicates whether the VIG is for AVPN or INTERNET" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV4Vig" name="ipaddress-v4-vig" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v4 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV6Vig" name="ipaddress-v6-vig" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="v6 IP of the vig server" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607" /> - <xml-property name="indexedProps" value="vig-address-type" /> - <xml-property name="dependentOn" value="ipsec-configuration" /> - <xml-property name="container" value="vig-servers" /> - </xml-properties> - </java-type> - - <java-type name="IpsecConfigurations"> - <xml-root-element name="ipsec-configurations" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="ipsecConfiguration" name="ipsec-configuration" type="inventory.aai.att.com.v9.IpsecConfiguration" /> - </java-attributes> - </java-type> - - <java-type name="IpsecConfiguration"> - <xml-root-element name="ipsec-configuration" /> - <java-attributes> - <xml-element java-attribute="ipsecConfigurationId" name="ipsec-configuration-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="UUID of this configuration" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedVigAddressType" name="requested-vig-address-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicate the type of VIG server like AVPN, INTERNET, BOTH" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedEncryptionStrength" name="requested-encryption-strength" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedDmzType" name="requested-dmz-type" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="ATT can offer a shared DMZ or a DMZ specific to a customer" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sharedDmzNetworkAddress" name="shared-dmz-network-address" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Network address of shared DMZ" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="requestedCustomerName" name="requested-customer-name" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="If the DMZ is a custom DMZ, this field will indicate the customer information" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikeVersion" name="ike-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="can be 1 or 2" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Authentication" name="ikev1-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Contains values like md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1Encryption" name="ikev1-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1DhGroup" name="ikev1-dh-group" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmGroupId" name="ikev1-am-group-id" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Group name defined in VIG for clients using aggressive mode" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1AmPassword" name="ikev1-am-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="pre-shared key for the above group name " /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ikev1SaLifetime" name="ikev1-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Lifetime for IKEv1 SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecAuthentication" name="ipsec-authentication" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="md5, sha1, sha256, sha384" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecEncryption" name="ipsec-encryption" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecSaLifetime" name="ipsec-sa-lifetime" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Life time for IPSec SA" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="ipsecPfs" name="ipsec-pfs" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="enable PFS or not" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserId" name="xauth-userid" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="user ID for xAuth, sm-user,ucpeHostName,nmteHostName" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="xauthUserPassword" name="xauth-user-password" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Encrypted using the Juniper $9$ algorithm" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdInterval" name="dpd-interval" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="The time between DPD probe" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="dpdFrequency" name="dpd-frequency" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Maximum number of DPD before claiming the tunnel is down" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - <xml-element java-attribute="vigServers" name="vig-servers" type="inventory.aai.att.com.v9.VigServers" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C" /> - <xml-property name="indexedProps" value="ipsec-configuration-id" /> - <xml-property name="uniqueProps" value="ipsec-configuration-id" /> - <xml-property name="container" value="ipsec-configurations" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - - <java-type name="NotificationEvent"> - <xml-root-element name="notification-event" /> - <java-attributes> - <xml-element java-attribute="cambriaPartition" name="cambria.partition" type="java.lang.String" /> - <xml-element java-attribute="eventHeader" name="event-header" type="inventory.aai.att.com.v9.NotificationEventHeader" /> - <xml-any-element java-attribute="entity" /> - </java-attributes> - </java-type> - <java-type name="NotificationEventHeader"> - <xml-root-element name="notification-event-header" /> - <java-attributes> - <xml-element java-attribute="id" name="id" type="java.lang.String" /> - <xml-element java-attribute="timestamp" name="timestamp" type="java.lang.String" /> - <xml-element java-attribute="sourceName" name="source-name" type="java.lang.String" /> - <xml-element java-attribute="domain" name="domain" type="java.lang.String" /> - <xml-element java-attribute="sequenceNumber" name="sequence-number" type="java.lang.String" /> - <xml-element java-attribute="severity" name="severity" type="java.lang.String" /> - <xml-element java-attribute="eventType" name="event-type" type="java.lang.String" /> - <xml-element java-attribute="version" name="version" type="java.lang.String" /> - <xml-element java-attribute="action" name="action" type="java.lang.String" /> - <xml-element java-attribute="entityType" name="entity-type" type="java.lang.String" /> - <xml-element java-attribute="topEntityType" name="top-entity-type" type="java.lang.String" /> - <xml-element java-attribute="entityLink" name="entity-link" type="java.lang.String" /> - <xml-element java-attribute="status" name="status" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="AaiInternal"> - <xml-root-element name="aai-internal" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="reservedPropNames" name="reserved-prop-names" type="inventory.aai.att.com.v9.ReservedPropNames" /> - <xml-element container-type="java.util.ArrayList" java-attribute="edgePropNames" name="edge-prop-names" type="inventory.aai.att.com.v9.EdgePropNames" /> - </java-attributes> - </java-type> - <java-type name="ReservedPropNames"> - <xml-properties> - <xml-property name="description" value="Internal map to define some reserved properties of a vertex" /> - <xml-property name="uniqueProps" value="aai-unique-key" /> - <xml-property name="indexedProps" value="aai-unique-key,source-of-truth,aai-node-type" /> - </xml-properties> - <xml-root-element name="reserved-prop-names" /> - <java-attributes> - <xml-element java-attribute="lastModSourceOfTruth" name="last-mod-source-of-truth" type="java.lang.String" /> - <xml-element java-attribute="aaiNodeType" name="aai-node-type" type="java.lang.String" /> - <xml-element java-attribute="aaiCreatedTs" name="aai-created-ts" type="java.lang.Long" /> - <xml-element java-attribute="aaiUniqueKey" name="aai-unique-key" type="java.lang.String" /> - <xml-element java-attribute="aaiLastModTs" name="aai-last-mod-ts" type="java.lang.Long" /> - <xml-element java-attribute="sourceOfTruth" name="source-of-truth" type="java.lang.String" /> - </java-attributes> - </java-type> - <java-type name="EdgePropNames"> - <!-- NOTE that the names of these properties are not consistent and are in mixed case and hyphen case for now --> - <xml-properties> - <xml-property name="description" value="Internal map to define the properties of an edge and interpret the map EdgeRules" /> - <xml-property name="edgeInfo" value="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV" /> - </xml-properties> - <xml-root-element name="edge-prop-names" /> - <java-attributes> - <xml-element java-attribute="edgeLabel" name="edgeLabel" type="java.lang.String" /> - <xml-element java-attribute="direction" name="direction" type="java.lang.String" /> - <xml-element java-attribute="multiplicityRule" name="multiplicityRule" type="java.lang.String" /> - <xml-element java-attribute="isParent" name="isParent" type="java.lang.Boolean" /> - <xml-element java-attribute="usesResource" name="usesResource" type="java.lang.Boolean" /> - <xml-element java-attribute="hasDelTarget" name="hasDelTarget" type="java.lang.Boolean" /> - <xml-element java-attribute="SVC-INFRA" name="SVC-INFRA" type="java.lang.String" /> - <xml-element java-attribute="SVC-INFRA-REV" name="SVC-INFRA-REV" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="Models"> - <xml-properties> - <xml-property name="description" value="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models" /> - </xml-properties> - <xml-root-element name="models" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.att.com.v9.Model" /> - </java-attributes> - </java-type> - - <java-type name="Model"> - <xml-properties> - <xml-property name="description" value="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models" /> - <xml-property name="nameProps" value="model-name,model-type" /> - <xml-property name="indexedProps" value="model-name-version-id,model-type,model-name,model-id,model-version" /> - <xml-property name="alternateKeys1" value="model-id,model-version" /> - <xml-property name="uniqueProps" value="model-name-version-id" /> - <xml-property name="container" value="models" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="model" /> - <java-attributes> - <xml-element java-attribute="modelNameVersionId" name="model-name-version-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Name of the model, which can change from version to version." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelId" name="model-id" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Invariant unique ID which does not change from version to version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Version" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Description" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.att.com.v9.ModelElements" /> - <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.att.com.v9.Metadata" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelElements"> - <xml-root-element name="model-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.att.com.v9.ModelElement" /> - </java-attributes> - </java-type> - - <java-type name="ModelElement"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model." /> - <xml-property name="uniqueProps" value="model-element-uuid" /> - <xml-property name="indexedProps" value="model-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-elements" /> - </xml-properties> - <xml-root-element name="model-element" /> - <java-attributes> - <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="How many of this type of element are required/allowed" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-point" type="java.lang.String"> - <xml-element-wrapper name="linkage-points" /> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.att.com.v9.ModelElements"> - <xml-properties> - <xml-property name="description" value="Defines how other models combine to make up a higher-level model" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.att.com.v9.ModelConstraints"> - <xml-properties> - <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraints"> - <xml-root-element name="model-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.att.com.v9.ModelConstraint" /> - </java-attributes> - </java-type> - - <java-type name="ModelConstraint"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="model-constraint-uuid" /> - <xml-property name="indexedProps" value="model-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="model-constraints" /> - </xml-properties> - <xml-root-element name="model-constraint" /> - <java-attributes> - <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String" /> - <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.att.com.v9.ConstrainedElementSets" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSets"> - <xml-root-element name="constrained-element-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.att.com.v9.ConstrainedElementSet" /> - </java-attributes> - </java-type> - - <java-type name="ConstrainedElementSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="constrained-element-set-uuid" /> - <xml-property name="indexedProps" value="constrained-element-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="constrained-element-sets" /> - </xml-properties> - <xml-root-element name="constrained-element-set" /> - <java-attributes> - <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.att.com.v9.ElementChoiceSets" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSets"> - <xml-root-element name="element-choice-sets" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.att.com.v9.ElementChoiceSet" /> - </java-attributes> - </java-type> - - <java-type name="ElementChoiceSet"> - <xml-properties> - <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." /> - <xml-property name="uniqueProps" value="element-choice-set-uuid" /> - <xml-property name="indexedProps" value="element-choice-set-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="element-choice-sets" /> - </xml-properties> - <xml-root-element name="element-choice-set" /> - <java-attributes> - <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.att.com.v9.ModelElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueries"> - <xml-root-element name="named-queries" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.att.com.v9.NamedQuery" /> - </java-attributes> - </java-type> - - <java-type name="NamedQuery"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="nameProps" value="named-query-name" /> - <xml-property name="uniqueProps" value="named-query-uuid" /> - <xml-property name="indexedProps" value="named-query-uuid,named-query-name" /> - <xml-property name="container" value="named-queries" /> - <xml-property name="namespace" value="service-design-and-creation" /> - </xml-properties> - <xml-root-element name="named-query" /> - <java-attributes> - <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true" /> - <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String"> - <xml-element-wrapper name="required-input-params" /> - </xml-element> - <xml-element java-attribute="description" name="description" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.att.com.v9.NamedQueryElements" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElements"> - <xml-root-element name="named-query-elements" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.att.com.v9.NamedQueryElement" /> - </java-attributes> - </java-type> - - <java-type name="NamedQueryElement"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="named-query-element-uuid" /> - <xml-property name="indexedProps" value="named-query-element-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="named-query-elements" /> - </xml-properties> - <xml-root-element name="named-query-element" /> - <java-attributes> - <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String" /> - <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String" /> - <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.att.com.v9.NamedQueryElements" /> - <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.att.com.v9.RelatedLookups" /> - <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.att.com.v9.PropertyConstraints" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookups"> - <xml-root-element name="related-lookups" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.att.com.v9.RelatedLookup" /> - </java-attributes> - </java-type> - - <java-type name="RelatedLookup"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="related-lookup-uuid" /> - <xml-property name="indexedProps" value="related-lookup-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="related-lookups" /> - </xml-properties> - <xml-root-element name="related-lookup" /> - <java-attributes> - <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String" /> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraints"> - <xml-root-element name="property-constraints" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.att.com.v9.PropertyConstraint" /> - </java-attributes> - </java-type> - - <java-type name="PropertyConstraint"> - <xml-properties> - <xml-property name="description" value="TBD" /> - <xml-property name="uniqueProps" value="property-constraint-uuid" /> - <xml-property name="indexedProps" value="property-constraint-uuid" /> - <xml-property name="allowDirectRead" value="true" /> - <xml-property name="allowDirectWrite" value="false" /> - <xml-property name="container" value="property-constraints" /> - </xml-properties> - <xml-root-element name="property-constraint" /> - <java-attributes> - <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="autoGenerateUuid" value="true" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" /> - <xml-element java-attribute="property-name" name="property-name" required="true" type="java.lang.String" /> - <xml-element java-attribute="property-value" name="property-value" required="true" type="java.lang.String" /> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ModelAndNamedQuerySearch"> - <xml-properties> - <xml-property name="description" value="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="model-and-named-query-search" /> - <java-attributes> - <xml-element java-attribute="queryParameters" name="query-parameters" type="inventory.aai.att.com.v9.QueryParameters" /> - <xml-element java-attribute="instanceFilters" name="instance-filters" type="inventory.aai.att.com.v9.InstanceFilters" /> - <xml-element java-attribute="topNodeType" name="top-node-type" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="QueryParameters"> - <xml-properties> - <xml-property name="description" value="QueryParameters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="query-parameters" /> - <java-attributes> - <xml-element java-attribute="namedQuery" name="named-query" type="inventory.aai.att.com.v9.NamedQuery" /> - <xml-element java-attribute="model" name="model" type="inventory.aai.att.com.v9.Model" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilters"> - <xml-properties> - <xml-property name="description" value="InstanceFilters for performing a named-query or model query" /> - </xml-properties> - <xml-root-element name="instance-filters" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="instanceFilter" name="instance-filter" type="inventory.aai.att.com.v9.InstanceFilter" /> - </java-attributes> - </java-type> - - <java-type name="InstanceFilter"> - <xml-properties> - <xml-property name="description" value="InstanceFilter for performing a named-query or model query" /> - <xml-property name="container" value="instance-filters" /> - </xml-properties> - <xml-root-element name="instance-filter" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="any" lax="true" name="any" /> - </java-attributes> - </java-type> - - <java-type name="Properties"> - <xml-properties> - <xml-property name="description" value="Property holder for query properties or instance properties" /> - </xml-properties> - <xml-root-element name="properties" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String" /> - </java-attributes> - </java-type> - - <java-type name="ResponseList"> - <xml-properties> - <xml-property name="description" value="Response container for the results of a named-query or model query" /> - </xml-properties> - <xml-root-element name="response-list" /> - <java-attributes> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.att.com.v9.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItems"> - <xml-properties> - <xml-property name="description" value="Container for inventory items in response list" /> - <xml-property name="container" value="response-list" /> - </xml-properties> - <xml-root-element name="inventory-response-items" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="inventoryResponseItem" name="inventory-response-item" type="inventory.aai.att.com.v9.InventoryResponseItem" /> - </java-attributes> - </java-type> - - <java-type name="InventoryResponseItem"> - <xml-properties> - <xml-property name="description" value="Inventory item for response list" /> - <xml-property name="container" value="inventory-response-items" /> - </xml-properties> - <xml-root-element name="inventory-response-item" /> - <java-attributes> - <xml-element java-attribute="modelName" name="model-name" type="java.lang.String" /> - <xml-any-element java-attribute="item" /> - <xml-element java-attribute="extraProperties" name="extra-properties" type="inventory.aai.att.com.v9.ExtraProperties" /> - <xml-element java-attribute="inventoryResponseItems" name="inventory-response-items" type="inventory.aai.att.com.v9.InventoryResponseItems" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperties"> - <xml-properties> - <xml-property name="description" value="Extra properties for inventory item for response list" /> - </xml-properties> - <xml-root-element name="extra-properties" /> - <java-attributes> - <xml-any-element container-type="java.util.ArrayList" java-attribute="extraProperty" name="extra-property" type="inventory.aai.att.com.v9.ExtraProperty" /> - </java-attributes> - </java-type> - - <java-type name="ExtraProperty"> - <xml-root-element name="extra-property" /> - <java-attributes> - <xml-element java-attribute="propertyName" name="property-name" type="java.lang.String" /> - <xml-any-element java-attribute="propertyValue" lax="true" name="property-value" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReferences"> - <xml-properties> - <xml-property name="description" value="Collection of openstack route table references" /> - </xml-properties> - <xml-root-element name="route-table-references" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="routeTableReference" name="route-table-reference" type="inventory.aai.att.com.v9.RouteTableReference" /> - </java-attributes> - </java-type> - - <java-type name="RouteTableReference"> - <xml-root-element name="route-table-reference" /> - <java-attributes> - <xml-element java-attribute="routeTableReferenceId" name="route-table-reference-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="routeTableReferenceFqdn" name="route-table-reference-fqdn" required="true" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="FQDN entry in the route table." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - - <xml-properties> - <xml-property name="description" value="Openstack route table reference." /> - <xml-property name="nameProps" value="route-table-reference-fqdn" /> - <xml-property name="uniqueProps" value="route-table-reference-id" /> - <xml-property name="indexedProps" value="route-table-reference-id,route-table-reference-fqdn" /> - <xml-property name="container" value="route-table-references" /> - <xml-property name="namespace" value="network" /> - </xml-properties> - </java-type> - - <java-type name="SegmentationAssignments"> - <xml-properties> - <xml-property name="description" value="Collection of openstack segmentation assignments" /> - </xml-properties> - <xml-root-element name="segmentation-assignments" /> - <java-attributes> - <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.att.com.v9.SegmentationAssignment" /> - </java-attributes> - </java-type> - - <java-type name="SegmentationAssignment"> - <xml-root-element name="segmentation-assignment" /> - <java-attributes> - <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." /> - </xml-properties> - </xml-element> - <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> - <xml-properties> - <xml-property name="description" value="Concurrency value" /> - </xml-properties> - </xml-element> - <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.att.com.v9.RelationshipList" /> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Openstack segmentation assignment." /> - <xml-property name="indexedProps" value="segmentation-id" /> - <xml-property name="dependentOn" value="l3-network" /> - <xml-property name="container" value="segmentation-assignments" /> - </xml-properties> - </java-type> - <java-type name="Vnf"> - <xml-root-element name="vnf"/> - <java-attributes> - <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true"> - <xml-properties> - <xml-property name="description" value="Unique id of VNF. This is unique across the graph." /> - </xml-properties> - </xml-element> - </java-attributes> - <xml-properties> - <xml-property name="description" value="Abstract vnf class" /> - <xml-property name="indexedProps" value="vnf-id" /> - <xml-property name="uniqueProps" value="vnf-id" /> - <xml-property name="inheritors" value="vce,vpe,generic-vnf" /> - <xml-property name="abstract" value="true" /> - </xml-properties> - </java-type> - </java-types> -</xml-bindings>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml index 68fa1e4966..d827c4eb36 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml @@ -9,14 +9,6 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "common.fullname" . }}-model - namespace: {{ include "common.namespace" . }} -data: -{{ tpl (.Files.Glob "resources/config/model/*").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: name: {{ include "common.fullname" . }}-portal namespace: {{ include "common.namespace" . }} data: diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml index 278a32728e..05a808e805 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml @@ -34,6 +34,19 @@ spec: release: {{ .Release.Name }} name: {{ include "common.name" . }} spec: + initContainers: + - name: {{ include "common.name" . }}-inject-models + command: + - /bin/bash + - "-c" + - | + git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit + cp -rp /tmp/gerrit/data-router/appconfig/model/* /model-dir + image: "{{ .Values.global.repository | default .Values.dockerHubRepository }}/{{ .Values.ubuntuInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: modeldir + mountPath: "/model-dir" containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" @@ -69,8 +82,6 @@ spec: - mountPath: /opt/app/sparky/config/aai.properties subPath: aai.properties name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/model/ - name: {{ include "common.fullname" . }}-model-config - mountPath: /opt/app/sparky/config/portal/ name: {{ include "common.fullname" . }}-portal-config - mountPath: /var/log/onap @@ -78,6 +89,8 @@ spec: - mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml name: {{ include "common.fullname" . }}-log-conf subPath: logback.xml + - name: modeldir + mountPath: /opt/app/sparky/config/model ports: - containerPort: {{ .Values.service.internalPort }} # disable liveness probe when breakpoints set in debugger @@ -125,9 +138,6 @@ spec: - name: {{ include "common.fullname" . }}-config configMap: name: {{ include "common.fullname" . }} - - name: {{ include "common.fullname" . }}-model-config - configMap: - name: {{ include "common.fullname" . }}-model - name: {{ include "common.fullname" . }}-portal-config configMap: name: {{ include "common.fullname" . }}-portal @@ -144,6 +154,8 @@ spec: - name: {{ include "common.fullname" . }}-log-conf configMap: name: {{ include "common.fullname" . }}-log + - name: modeldir + emptyDir: {} restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-sparky-be/values.yaml b/kubernetes/aai/charts/aai-sparky-be/values.yaml index 34be1befb2..df058a4af2 100644 --- a/kubernetes/aai/charts/aai-sparky-be/values.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/values.yaml @@ -12,11 +12,16 @@ image: onap/sparky-be:v1.1.0 pullPolicy: Always restartPolicy: Always +dockerhubRepository: registry.hub.docker.com +ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 # application configuration config: elasticsearchHttpPort: 9200 keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o + gerritBranch: master + gerritProject: http://gerrit.onap.org/r/aai/test-config + # override chart name (sparky-be) to share a common namespace # suffix with parent chart (aai) diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml index ea3239e815..1330bd26e7 100644 --- a/kubernetes/appc/values.yaml +++ b/kubernetes/appc/values.yaml @@ -19,7 +19,7 @@ global: nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s - readinessImage: readiness-check:1.1.0 + readinessImage: readiness-check:1.1.1 loggingRepository: docker.elastic.co loggingImage: beats/filebeat:5.5.0 persistence: diff --git a/kubernetes/clamp/charts/mariadb/templates/NOTES.txt b/kubernetes/clamp/charts/mariadb/templates/NOTES.txt new file mode 100644 index 0000000000..57947a65da --- /dev/null +++ b/kubernetes/clamp/charts/mariadb/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/clamp/templates/NOTES.txt b/kubernetes/clamp/templates/NOTES.txt index 91d8ed42f1..57947a65da 100644 --- a/kubernetes/clamp/templates/NOTES.txt +++ b/kubernetes/clamp/templates/NOTES.txt @@ -13,7 +13,7 @@ export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo http://$SERVICE_IP:{{ .Values.service.externalPort }} {{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} {{- end }} diff --git a/kubernetes/common/mysql/Chart.yaml b/kubernetes/common/mysql/Chart.yaml index 99e7c44fb9..b2e7d4aa93 100644 --- a/kubernetes/common/mysql/Chart.yaml +++ b/kubernetes/common/mysql/Chart.yaml @@ -1,3 +1,17 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + apiVersion: v1 description: MySQL Server name: mysql diff --git a/kubernetes/common/mysql/requirements.yaml b/kubernetes/common/mysql/requirements.yaml index acca8ef7e2..ce82a2f838 100644 --- a/kubernetes/common/mysql/requirements.yaml +++ b/kubernetes/common/mysql/requirements.yaml @@ -1,4 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + dependencies: - name: common version: ~2.0.0 - repository: '@local'
\ No newline at end of file + repository: '@local' diff --git a/kubernetes/common/mysql/templates/configmap.yaml b/kubernetes/common/mysql/templates/configmap.yaml index dd2b5b7db2..ff127e48cd 100644 --- a/kubernetes/common/mysql/templates/configmap.yaml +++ b/kubernetes/common/mysql/templates/configmap.yaml @@ -1,3 +1,19 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + apiVersion: v1 kind: ConfigMap metadata: diff --git a/kubernetes/common/mysql/templates/nfs-provisoner.yaml b/kubernetes/common/mysql/templates/nfs-provisoner.yaml index 7d12c592d6..3f19977ae2 100644 --- a/kubernetes/common/mysql/templates/nfs-provisoner.yaml +++ b/kubernetes/common/mysql/templates/nfs-provisoner.yaml @@ -1,3 +1,19 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + #{{ if not .Values.disableNfsProvisioner }} apiVersion: extensions/v1beta1 kind: Deployment @@ -58,5 +74,5 @@ spec: volumes: - name: export-volume hostPath: - path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }} + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }} #{{ end }} diff --git a/kubernetes/common/mysql/templates/pv.yaml b/kubernetes/common/mysql/templates/pv.yaml new file mode 100644 index 0000000000..1cc92ace44 --- /dev/null +++ b/kubernetes/common/mysql/templates/pv.yaml @@ -0,0 +1,38 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +{{- if (and (and (.Values.persistence.enabled) (not .Values.persistence.existingClaim)) ( .Values.disableNfsProvisioner)) -}} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + storageClassName: "{{ include "common.fullname" . }}-data" + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/common/mysql/templates/pvc.yaml b/kubernetes/common/mysql/templates/pvc.yaml new file mode 100644 index 0000000000..edb370ae35 --- /dev/null +++ b/kubernetes/common/mysql/templates/pvc.yaml @@ -0,0 +1,39 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +{{- if (and (and (.Values.persistence.enabled) (not .Values.persistence.existingClaim)) ( .Values.disableNfsProvisioner)) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}-data + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} + storageClassName: "{{ include "common.fullname" . }}-data" +{{- end -}} diff --git a/kubernetes/common/mysql/templates/secrets.yaml b/kubernetes/common/mysql/templates/secrets.yaml index 7604be8239..7f9b1230eb 100644 --- a/kubernetes/common/mysql/templates/secrets.yaml +++ b/kubernetes/common/mysql/templates/secrets.yaml @@ -1,3 +1,19 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + apiVersion: v1 kind: Secret metadata: @@ -10,4 +26,4 @@ metadata: heritage: {{ .Release.Service }} type: Opaque data: - db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
\ No newline at end of file + db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }} diff --git a/kubernetes/common/mysql/templates/service.yaml b/kubernetes/common/mysql/templates/service.yaml index 6b8dbfb8a0..032920c760 100644 --- a/kubernetes/common/mysql/templates/service.yaml +++ b/kubernetes/common/mysql/templates/service.yaml @@ -1,3 +1,19 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + apiVersion: v1 kind: Service metadata: diff --git a/kubernetes/common/mysql/templates/statefulset.yaml b/kubernetes/common/mysql/templates/statefulset.yaml index 0304639cb9..e43698865e 100644 --- a/kubernetes/common/mysql/templates/statefulset.yaml +++ b/kubernetes/common/mysql/templates/statefulset.yaml @@ -1,4 +1,5 @@ -# Copyright © 2017-2018 Amdocs, Bell Canada +{{/* +# Copyright © 2017 Amdocs, Bell Canada # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -11,6 +12,7 @@ # 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. +*/}} apiVersion: apps/v1beta1 kind: StatefulSet @@ -49,7 +51,7 @@ spec: imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} #{{ end }} - name: init-mysql - image: "{{ .Values.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} command: - bash @@ -105,14 +107,12 @@ spec: volumeMounts: - name: {{ include "common.fullname" . }}-data mountPath: /var/lib/mysql - subPath: mysql - name: conf mountPath: /etc/mysql/conf.d containers: - #sdnc-db-container - name: {{ include "common.name" . }} - image: "{{ .Values.repository | default .Values.repository }}/{{ .Values.image }}" + image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} @@ -144,7 +144,6 @@ spec: volumeMounts: - mountPath: /var/lib/mysql name: {{ include "common.fullname" . }}-data - subPath: mysql - mountPath: /etc/mysql/conf.d name: conf resources: @@ -225,7 +224,6 @@ spec: volumeMounts: - name: {{ include "common.fullname" . }}-data mountPath: /var/lib/mysql - subPath: mysql - name: conf mountPath: /etc/mysql/conf.d volumes: diff --git a/kubernetes/common/mysql/templates/storageclass.yaml b/kubernetes/common/mysql/templates/storageclass.yaml index 1a4e6b6bb7..398c998e0f 100644 --- a/kubernetes/common/mysql/templates/storageclass.yaml +++ b/kubernetes/common/mysql/templates/storageclass.yaml @@ -1,3 +1,19 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: diff --git a/kubernetes/common/mysql/values.yaml b/kubernetes/common/mysql/values.yaml index 43b690aa94..1e8c8bdd84 100644 --- a/kubernetes/common/mysql/values.yaml +++ b/kubernetes/common/mysql/values.yaml @@ -1,3 +1,17 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + ################################################################# # Global configuration defaults. ################################################################# @@ -6,15 +20,14 @@ global: repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== persistence: {} readinessRepository: oomk8s - readinessImage: readiness-check:1.0.0 + readinessImage: readiness-check:1.1.1 ################################################################# # Application configuration defaults. ################################################################# -#repository: mysql -repository: registry.hub.docker.com +dockerHubRepository: registry.hub.docker.com image: library/mysql:5.7 pullPolicy: Always @@ -29,6 +42,8 @@ nodeSelector: {} affinity: {} +disableNfsProvisioner: true + # probe configuration parameters liveness: initialDelaySeconds: 30 @@ -61,7 +76,7 @@ persistence: accessMode: ReadWriteMany size: 1Gi mountPath: /dockerdata-nfs - mountSubPath: mysql/data + mountSubPath: "mysql/data" service: name: mysql diff --git a/kubernetes/consul/templates/deployment.yaml b/kubernetes/consul/templates/deployment.yaml index 68b23917b6..e984e2a72f 100644 --- a/kubernetes/consul/templates/deployment.yaml +++ b/kubernetes/consul/templates/deployment.yaml @@ -36,11 +36,15 @@ spec: spec: containers: - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}" - command: ["/usr/local/bin/docker-entrypoint.sh"] - args: ["agent","-client","0.0.0.0","-enable-script-checks","-join","{{ .Release.Name }}-{{ index .Values "consul-server" "nameOverride" }}.{{ include "common.namespace" .}}"] + command: + - /bin/sh + - "-c" + - | + cp /tmp/consul/config/* /consul/config + /usr/local/bin/docker-entrypoint.sh agent -client 0.0.0.0 -enable-script-checks -join {{ .Release.Name }}-{{ .Values.consulServer.nameOverride }}.{{ include "common.namespace" .}} name: {{ include "common.name" . }} volumeMounts: - - mountPath: /consul/config + - mountPath: /tmp/consul/config name: consul-agent-config - mountPath: /consul/scripts name: consul-agent-scripts-config diff --git a/kubernetes/consul/values.yaml b/kubernetes/consul/values.yaml index 74d0ccd048..ee26f542e7 100644 --- a/kubernetes/consul/values.yaml +++ b/kubernetes/consul/values.yaml @@ -32,7 +32,7 @@ image: consul:1.0.0 pullPolicy: Always #subchart name -consul-server: +consulServer: nameOverride: consul-server # flag to enable debugging - application support required diff --git a/kubernetes/dcaegen2/charts/redis/.helmignore b/kubernetes/dcaegen2/charts/redis/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/dcaegen2/charts/redis/Chart.yaml b/kubernetes/dcaegen2/charts/redis/Chart.yaml new file mode 100644 index 0000000000..692b7ab5d9 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP DCAE Redis +name: redis +version: 2.0.0 diff --git a/kubernetes/dcaegen2/charts/redis/requirements.yaml b/kubernetes/dcaegen2/charts/redis/requirements.yaml new file mode 100644 index 0000000000..7244af3970 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/requirements.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# +# 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. + +dependencies: + - name: common + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dcaegen2/charts/redis/resources/redis/scripts/redis-cluster-config.sh b/kubernetes/dcaegen2/charts/redis/resources/redis/scripts/redis-cluster-config.sh new file mode 100755 index 0000000000..3431e7e6e7 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/resources/redis/scripts/redis-cluster-config.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# ================================================================================ +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= + + +if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then + + NODES="" + echo "====> wait for all {{.Values.replicaCount}} redis pods up" + while [ "$(echo $NODES | wc -w)" -lt {{.Values.replicaCount}} ] + do + echo "======> $(echo $NODES |wc -w) / {{.Values.replicaCount}} pods up" + sleep 5 + RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) + + IPS=$(echo $RESP | jq -r '.items[].status.podIP') + NODES="" + for I in $IPS; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done + done + echo "====> all {{.Values.replicaCount}} redis cluster pods are up. wait 10 seconds before the next step"; echo + sleep 10 + + echo "====> Configure the cluster" + + # $NODES w/o quotes + redis-trib create --replicas 1 $(echo $NODES |paste -s) + +fi diff --git a/kubernetes/dcaegen2/charts/redis/templates/NOTES.txt b/kubernetes/dcaegen2/charts/redis/templates/NOTES.txt new file mode 100644 index 0000000000..d333bfc159 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/templates/NOTES.txt @@ -0,0 +1,34 @@ +{{/* +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# # +# # 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. +*/}} +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/dcaegen2/charts/redis/templates/configmap.yaml b/kubernetes/dcaegen2/charts/redis/templates/configmap.yaml new file mode 100644 index 0000000000..85ebee672b --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/templates/configmap.yaml @@ -0,0 +1,36 @@ +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} +data: + redis.conf: |+ + cluster-enabled yes + cluster-require-full-coverage no + cluster-node-timeout 15000 + cluster-config-file /data/nodes.conf + cluster-migration-barrier 1 + appendonly yes + protected-mode no +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-scripts + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/redis/scripts/*").AsConfig . | indent 2 }} diff --git a/kubernetes/dcaegen2/charts/redis/templates/pv.yaml b/kubernetes/dcaegen2/charts/redis/templates/pv.yaml new file mode 100644 index 0000000000..2d7e25dd2c --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/templates/pv.yaml @@ -0,0 +1,227 @@ +{{/* +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# # +# # 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. +*/}} +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}0 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}0 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}1 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}1 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}2 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}2 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}3 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}3 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}4 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}4 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}5 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}5 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}6 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}6 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}7 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}7 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}8 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}8 +--- +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }}9 + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + storageClassName: manual + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}9 + +{{- end -}} diff --git a/kubernetes/dcaegen2/charts/redis/templates/service.yaml b/kubernetes/dcaegen2/charts/redis/templates/service.yaml new file mode 100644 index 0000000000..b3ee24dba2 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/templates/service.yaml @@ -0,0 +1,48 @@ +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + #Example internal target port if required + #targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name2 }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name2 }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} diff --git a/kubernetes/dcaegen2/charts/redis/templates/statefulset.yaml b/kubernetes/dcaegen2/charts/redis/templates/statefulset.yaml new file mode 100644 index 0000000000..472471416b --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/templates/statefulset.yaml @@ -0,0 +1,116 @@ +{{/* +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# # +# # 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. +*/}} +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + serviceName: {{ .Values.service.name }} + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: + containers: + - name: {{ include "common.name" . }} + image: "{{ .Values.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: + - /bin/sh + - -c + - | + /opt/scripts/redis-cluster-config.sh & + /usr/local/bin/redis-server-config.sh + ports: + - containerPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - containerPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name2 }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + exec: + command: + - sh + - -c + - "redis-cli -h $(hostname) ping" + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + {{end -}} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /conf + name: {{ include "common.fullname" . }}-config + - mountPath: /data + name: {{ include "common.fullname" . }}-data + - mountPath: /opt/scripts + name: {{ include "common.fullname" . }}-scripts + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + volumes: + - name: {{ include "common.fullname" . }}-config + configMap: + name: {{ include "common.fullname" . }} + items: + - key: redis.conf + path: redis.conf + - name: {{ include "common.fullname" . }}-scripts + configMap: + name: {{ include "common.fullname" . }}-scripts + defaultMode: 0755 + - name: localtime + hostPath: + path: /etc/localtime + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + volumeClaimTemplates: + - metadata: + name: {{ include "common.fullname" . }}-data + labels: + name: {{ include "common.fullname" . }} + spec: + accessModes: [ {{ .Values.persistence.accessMode }} ] + storageClassName: manual + resources: + requests: + storage: {{ .Values.persistence.size }} diff --git a/kubernetes/dcaegen2/charts/redis/values.yaml b/kubernetes/dcaegen2/charts/redis/values.yaml new file mode 100644 index 0000000000..857f6e2e85 --- /dev/null +++ b/kubernetes/dcaegen2/charts/redis/values.yaml @@ -0,0 +1,113 @@ +# Copyright © 2017 Amdocs, AT&T, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + persistence: {} + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/org.onap.dcaegen2.deployments.redis-cluster-container.redis-cluster-container:1.0.0 +pullPolicy: Always + +# application configuration +# Example: +config: {} + +# default number of instances +replicaCount: 6 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 15 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 15 + periodSeconds: 10 + +service: + #Example service definition with external, internal and node ports. + #Services may use any combination of ports depending on the 'type' of + #service being defined. + type: NodePort + name: client + externalPort: 6379 + internalPort: 6379 + nodePort: 86 + name2: gossip + externalPort2: 16379 + internalPort2: 16379 + nodePort2: 87 + +## Persist data to a persitent volume +persistence: + enabled: true + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + volumeReclaimPolicy: Retain + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + accessMode: ReadWriteOnce + size: 10Mi + mountPath: /dockerdata-nfs + mountSubPath: redis/data + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/dcaegen2/requirements.yaml b/kubernetes/dcaegen2/requirements.yaml new file mode 100644 index 0000000000..8cddd3029f --- /dev/null +++ b/kubernetes/dcaegen2/requirements.yaml @@ -0,0 +1,4 @@ +dependencies: + - name: common + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dcaegen2/values.yaml b/kubernetes/dcaegen2/values.yaml index 5443089e45..eff5ef1f7f 100644 --- a/kubernetes/dcaegen2/values.yaml +++ b/kubernetes/dcaegen2/values.yaml @@ -17,3 +17,5 @@ location: dg2 image: repository: nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.bootstrap:v1.1.0 pullPolicy: Always +redis: + replicaCount: 6 diff --git a/kubernetes/dmaap/.helmignore b/kubernetes/dmaap/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/dmaap/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/dmaap/Chart.yaml b/kubernetes/dmaap/Chart.yaml new file mode 100644 index 0000000000..a83b50b2d3 --- /dev/null +++ b/kubernetes/dmaap/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +apiVersion: v1 +description: a Helm chart to deploy ONAP DMaaP componetns in Kubernetes +name: dmaap +version: 2.0.0 diff --git a/kubernetes/dmaap/README.md b/kubernetes/dmaap/README.md new file mode 100644 index 0000000000..e185fdc6a7 --- /dev/null +++ b/kubernetes/dmaap/README.md @@ -0,0 +1,11 @@ +# Helm Chart for ONAP DMaaP Applications + +ONAP includes the following Kubernetes services: + +1) message-router - a message bus for applications +2) dmaap-prov - an API to provision DMaaP resources + +# Service Dependencies + +message-router depends on AAF +dmaap-prov depends on AAF and Postgresql. NOTE: until Postgresql is available as a common service in ONAP, this chart deploys a private instance based on kubernetes/stable chart diff --git a/kubernetes/dmaap/charts/postgresql/Chart.yaml b/kubernetes/dmaap/charts/postgresql/Chart.yaml new file mode 100644 index 0000000000..c64338735a --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/Chart.yaml @@ -0,0 +1,16 @@ +name: postgresql +version: 0.9.3 +description: Object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance. +keywords: +- postgresql +- postgres +- database +- sql +home: https://www.postgresql.org/ +icon: https://www.postgresql.org/media/img/about/press/elephant.png +sources: +- https://github.com/kubernetes/charts +- https://github.com/docker-library/postgres +maintainers: +- name: databus23 +engine: gotpl diff --git a/kubernetes/dmaap/charts/postgresql/templates/Notes.txt b/kubernetes/dmaap/charts/postgresql/templates/Notes.txt new file mode 100644 index 0000000000..9b49bb2982 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/Notes.txt @@ -0,0 +1,35 @@ +# PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster: +# {{ template "postgresql.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local +# +# To get your user password run: +# +# PGPASSWORD=$(kubectl get secret --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath="{.data.postgres-password}" | base64 --decode; echo) +# +# To connect to your database run the following command (using the env variable from above): +# +# kubectl run --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }}-client --restart=Never --rm --tty -i --image postgres \ +# --env "PGPASSWORD=$PGPASSWORD" \{{- if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} +# --labels="{{ template "postgresql.fullname" . }}-client=true" \{{- end }} +# --command -- psql -U {{ default "postgres" .Values.postgresUser }} \ +# -h {{ template "postgresql.fullname" . }} {{ default "postgres" .Values.postgresDatabase }} +# +# {{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} +# Note: Since NetworkPolicy is enabled, only pods with label +# {{ template "postgresql.fullname" . }}-client=true" +# will be able to connect to this PostgreSQL cluster. +# {{- end }} +# +# To connect to your database directly from outside the K8s cluster: +# {{- if contains "NodePort" .Values.service.type }} +# PGHOST=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath='{.items[0].status.addresses[0].address}') +# PGPORT=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath='{.spec.ports[0].nodePort}') +# +# {{- else if contains "ClusterIP" .Values.service.type }} +# PGHOST=127.0.0.1 +# PGPORT={{ default "5432" .Values.service.port }} +# +# # Execute the following commands to route the connection: +# export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "postgresql.fullname" . }}" -o jsonpath="{.items[0].metadata.name}") +# kubectl port-forward --namespace {{ .Values.global.nsPrefix }} $POD_NAME {{ default "5432" .Values.service.port }}:{{ default "5432" .Values.service.port }} +# +# {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl b/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl new file mode 100644 index 0000000000..b2d3d523a9 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl @@ -0,0 +1,36 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "postgresql.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "postgresql.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for networkpolicy. +*/}} +{{- define "postgresql.networkPolicy.apiVersion" -}} +{{- if and (ge .Capabilities.KubeVersion.Minor "4") (le .Capabilities.KubeVersion.Minor "6") -}} +"extensions/v1beta1" +{{- else if ge .Capabilities.KubeVersion.Minor "7" -}} +"networking.k8s.io/v1" +{{- end -}} +{{- end -}} diff --git a/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml b/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml new file mode 100644 index 0000000000..57acfbda9b --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml @@ -0,0 +1,128 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ template "postgresql.fullname" . }} + namespace: {{ .Values.global.nsPrefix }} + labels: + app: {{ template "postgresql.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + template: + metadata: + labels: + app: {{ template "postgresql.fullname" . }} + spec: + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 8 }} + {{- end }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.tolerations }} + tolerations: +{{ toYaml .Values.tolerations | indent 8 }} + {{- end }} + {{- if .Values.schedulerName }} + schedulerName: "{{ .Values.schedulerName }}" + {{- end }} + containers: + - name: {{ template "postgresql.fullname" . }} + image: "{{ .Values.image }}:{{ .Values.imageTag }}" + imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + args: + {{- range $key, $value := default dict .Values.postgresConfig }} + - -c + - '{{ $key | snakecase }}={{ $value }}' + {{- end }} + env: + - name: POSTGRES_USER + value: {{ default "postgres" .Values.global.postgresUser | quote }} + # Required for pg_isready in the health probes. + - name: PGUSER + value: {{ default "postgres" .Values.global.postgresUser | quote }} + - name: POSTGRES_DB + value: {{ default "" .Values.global.postgresDatabase | quote }} + - name: POSTGRES_INITDB_ARGS + value: {{ default "" .Values.postgresInitdbArgs | quote }} + - name: PGDATA + value: /var/lib/postgresql/data/pgdata + - name: POSTGRES_PASSWORD + value: {{ default "postgres" .Values.global.postgresPassword | quote }} +# original code: +# valueFrom: +# secretKeyRef: +# name: {{ template "postgresql.fullname" . }} +# key: postgres-password + - name: POD_IP + valueFrom: { fieldRef: { fieldPath: status.podIP } } + ports: + - name: postgresql + containerPort: 5432 + livenessProbe: + exec: + command: + - sh + - -c + - exec pg_isready --host $POD_IP + initialDelaySeconds: 120 + timeoutSeconds: 5 + failureThreshold: 6 + readinessProbe: + exec: + command: + - sh + - -c + - exec pg_isready --host $POD_IP + initialDelaySeconds: 5 + timeoutSeconds: 3 + periodSeconds: 5 + resources: +{{ toYaml .Values.resources | indent 10 }} + volumeMounts: + - name: data + mountPath: {{ .Values.persistence.mountPath }} + subPath: {{ .Values.persistence.subPath }} +{{- if .Values.metrics.enabled }} + - name: metrics + image: "{{ .Values.metrics.image }}:{{ .Values.metrics.imageTag }}" + imagePullPolicy: {{ default "" .Values.metrics.imagePullPolicy | quote }} + env: + - name: DATA_SOURCE_NAME + value: postgresql://postgres@127.0.0.1:5432?sslmode=disable + ports: + - name: metrics + containerPort: 9187 + {{- if .Values.metrics.customMetrics }} + args: ["-extend.query-path", "/conf/custom-metrics.yaml"] + volumeMounts: + - name: custom-metrics + mountPath: /conf + readOnly: true + {{- end }} + resources: +{{ toYaml .Values.metrics.resources | indent 10 }} +{{- end }} + volumes: + - name: data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ .Values.persistence.existingClaim | default (include "postgresql.fullname" .) }} + {{- else }} + emptyDir: {} + {{- end }} + {{- if and .Values.metrics.enabled .Values.metrics.customMetrics }} + - name: custom-metrics + secret: + secretName: {{ template "postgresql.fullname" . }} + items: + - key: custom-metrics.yaml + path: custom-metrics.yaml + {{- end }} + {{- if .Values.imagePullSecrets }} + imagePullSecrets: + - name: {{ .Values.imagePullSecrets }} + {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml b/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml new file mode 100644 index 0000000000..92f3b71b15 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml @@ -0,0 +1,28 @@ +{{- if .Values.networkPolicy.enabled }} +kind: NetworkPolicy +apiVersion: {{ template "postgresql.networkPolicy.apiVersion" . }} +metadata: + name: "{{ template "postgresql.fullname" . }}" + labels: + app: {{ template "postgresql.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + podSelector: + matchLabels: + app: "{{ template "postgresql.fullname" . }}" + ingress: + # Allow inbound connections + - ports: + - port: 5432 + {{- if not .Values.networkPolicy.allowExternal }} + from: + - podSelector: + matchLabels: + {{ template "postgresql.fullname" . }}-client: "true" + {{- end }} + # Allow prometheus scrapes + - ports: + - port: 9187 +{{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml b/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml new file mode 100644 index 0000000000..f1d38dfb14 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml @@ -0,0 +1,28 @@ +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ template "postgresql.fullname" . }} + labels: + app: {{ template "postgresql.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + accessModes: + - {{ .Values.persistence.accessMode | quote }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml b/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml new file mode 100644 index 0000000000..6dd4c7da55 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "postgresql.fullname" . }} + labels: + app: {{ template "postgresql.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +type: Opaque +data: + {{ if .Values.postgresPassword }} + postgres-password: {{ .Values.postgresPassword | b64enc | quote }} + {{ else }} + postgres-password: {{ randAlphaNum 10 | b64enc | quote }} + {{ end }} + {{- if .Values.metrics.customMetrics }} + custom-metrics.yaml: {{ toYaml .Values.metrics.customMetrics | b64enc | quote }} + {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/svc.yaml b/kubernetes/dmaap/charts/postgresql/templates/svc.yaml new file mode 100644 index 0000000000..f6373c8368 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/templates/svc.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +kind: Service +metadata: + name: dmaap-prov-{{ template "postgresql.name" . }} + namespace: {{ .Values.global.nsPrefix }} + labels: + app: {{ template "postgresql.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.metrics.enabled }} + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9187" +{{- end }} +spec: + type: {{ .Values.service.type }} + ports: + - name: postgresql + port: {{ .Values.service.port }} + targetPort: postgresql + {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} +{{- if .Values.service.externalIPs }} + externalIPs: +{{ toYaml .Values.service.externalIPs | indent 4 }} +{{- end }} + selector: + app: {{ template "postgresql.fullname" . }} diff --git a/kubernetes/dmaap/charts/postgresql/values.yaml b/kubernetes/dmaap/charts/postgresql/values.yaml new file mode 100644 index 0000000000..37bbddaef9 --- /dev/null +++ b/kubernetes/dmaap/charts/postgresql/values.yaml @@ -0,0 +1,123 @@ +## postgres image repository +image: "postgres" +## postgres image version +## ref: https://hub.docker.com/r/library/postgres/tags/ +## +imageTag: "9.6.2" + +## Specify a imagePullPolicy +## 'Always' if imageTag is 'latest', else set to 'IfNotPresent' +## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images +## +# imagePullPolicy: + +## Specify imagePullSecrets +## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod +## +# imagePullSecrets: myregistrykey + +## Create a database user +## Default: postgres +#postgresUser: "dmaap" +## Default: random 10 character string +#postgresPassword: "onapdemodb" + +## Create a database +## Default: the postgres user +#postgresDatabase: "dmaap" + +## Specify initdb arguments, e.g. --data-checksums +## ref: https://github.com/docker-library/docs/blob/master/postgres/content.md#postgres_initdb_args +## ref: https://www.postgresql.org/docs/current/static/app-initdb.html +# postgresInitdbArgs: + +## Use an alternate scheduler, e.g. "stork". +## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ +## +# schedulerName: + +## Specify runtime config parameters as a dict, using camelCase, e.g. +## {"sharedBuffers": "500MB"} +## ref: https://www.postgresql.org/docs/current/static/runtime-config.html +# postgresConfig: + +## Persist data to a persitent volume +persistence: + enabled: false + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteOnce + size: 8Gi + subPath: "postgresql-db" + mountPath: /var/lib/postgresql/data/pgdata + + # annotations: {} + +metrics: + enabled: false + image: wrouesnel/postgres_exporter + imageTag: v0.1.1 + imagePullPolicy: IfNotPresent + resources: + requests: + memory: 256Mi + cpu: 100m + ## Define additional custom metrics + ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file + # customMetrics: + # pg_database: + # query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')" + # metrics: + # - name: + # usage: "LABEL" + # description: "Name of the database" + # - size_bytes: + # usage: "GAUGE" + # description: "Size of the database in bytes" + +## Configure resource requests and limits +## ref: http://kubernetes.io/docs/user-guide/compute-resources/ +## +resources: + requests: + memory: 256Mi + cpu: 100m + +service: + type: ClusterIP + port: 5432 + externalIPs: [] + ## Manually set NodePort value + ## Requires service.type: NodePort + # nodePort: + +networkPolicy: + ## Enable creation of NetworkPolicy resources. + ## + enabled: false + + ## The Policy model to apply. When set to false, only pods with the correct + ## client label will have network access to the port PostgreSQL is listening + ## on. When true, PostgreSQL will accept connections from any source + ## (with the correct destination port). + ## + allowExternal: true + +## Node labels and tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector +## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature +nodeSelector: {} +tolerations: [] +affinity: {} diff --git a/kubernetes/dmaap/requirements.yaml b/kubernetes/dmaap/requirements.yaml new file mode 100644 index 0000000000..a5ef229145 --- /dev/null +++ b/kubernetes/dmaap/requirements.yaml @@ -0,0 +1,18 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +dependencies: + - name: common + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dmaap/resources/config/README.txt b/kubernetes/dmaap/resources/config/README.txt new file mode 100644 index 0000000000..5cc01497f5 --- /dev/null +++ b/kubernetes/dmaap/resources/config/README.txt @@ -0,0 +1,10 @@ +This directory contains all external configuration files that +need to be mounted into an application container. + +See the configmap.yaml in the templates directory for an example +of how to load (ie map) config files from this directory, into +Kubernetes, for distribution within the k8s cluster. + +See deployment.yaml in the templates directory for an example +of how the 'config mapped' files are then mounted into the +containers. diff --git a/kubernetes/dmaap/resources/config/application.properties b/kubernetes/dmaap/resources/config/application.properties new file mode 100644 index 0000000000..496a15a531 --- /dev/null +++ b/kubernetes/dmaap/resources/config/application.properties @@ -0,0 +1 @@ +sampleConfigKey=sampleConfigValue
\ No newline at end of file diff --git a/kubernetes/dmaap/resources/config/buscontroller.env b/kubernetes/dmaap/resources/config/buscontroller.env new file mode 100644 index 0000000000..74d7822faa --- /dev/null +++ b/kubernetes/dmaap/resources/config/buscontroller.env @@ -0,0 +1,12 @@ +DMAAPBC_PG_ENABLED=true +DMAAPBC_PGHOST=dmaap-prov-postgresql +DMAAPBC_PGDBNAME={{ .Values.global.postgresDatabase }} +DMAAPBC_PGCRED={{ .Values.global.postgresPassword }} +DMAAPBC_PGUSER={{ .Values.global.postgresUser }} +DMAAPBC_MR_CNAME={{ .Values.dmaapMessageRouterService }} +DMAAPBC_AAF_URL={{ .Values.aafURL }} +DMAAPBC_TOPICMGR_USER={{ .Values.topicMgrUser }} +DMAAPBC_TOPICMGR_PWD={{ .Values.topicMgrPwd }} +DMAAPBC_ADMIN_USER={{ .Values.adminUser }} +DMAAPBC_ADMIN_PWD={{ .Values.adminPwd }} + diff --git a/kubernetes/dmaap/templates/NOTES.txt b/kubernetes/dmaap/templates/NOTES.txt new file mode 100644 index 0000000000..33b47cfc02 --- /dev/null +++ b/kubernetes/dmaap/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov) + export NODE_IP=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/dmaap/templates/configmap.yaml b/kubernetes/dmaap/templates/configmap.yaml new file mode 100644 index 0000000000..0d6a348249 --- /dev/null +++ b/kubernetes/dmaap/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-configmap + namespace: {{ .Values.global.nsPrefix }} +data: +{{ tpl (.Files.Glob "resources/config/buscontroller.env").AsConfig . | indent 2 }} diff --git a/kubernetes/dmaap/templates/deployment.yaml b/kubernetes/dmaap/templates/deployment.yaml new file mode 100644 index 0000000000..824548bd5e --- /dev/null +++ b/kubernetes/dmaap/templates/deployment.yaml @@ -0,0 +1,113 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + #name: {{ .Release.Name }}-{{ include "common.name" . }}-buscontroller + name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} + namespace: {{ .Values.global.nsPrefix }} + labels: + app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.buscontroller.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.buscontroller.httpExternalPort }} +# wait till we get SSL certs before enabling this port +# - containerPort: {{ .Values.buscontroller.httpsPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + httpGet: + port: {{ .Values.buscontroller.httpExternalPort }} + path: /webapi/info + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end -}} + readinessProbe: + httpGet: + port: {{ .Values.buscontroller.httpExternalPort }} + path: /webapi/info + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: +#Example environment variable passed to container +# - name: DEBUG_FLAG +# value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }} + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /opt/app/config + name: {{ include "common.name" . }}-config + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.name" . }}-config + configMap: + name: {{ include "common.fullname" . }}-configmap + items: + - key: buscontroller.env + path: conf +#Example config file mount into container +# - name: {{ include "common.fullname" . }}-config +# configMap: +# name: {{ include "common.fullname" . }}-configmap +# items: +# - key: application.properties +# path: application.properties + imagePullSecrets: + - name: "{{ .Values.global.nsPrefix }}-docker-registry-key" diff --git a/kubernetes/dmaap/templates/service.yaml b/kubernetes/dmaap/templates/service.yaml new file mode 100644 index 0000000000..9580e75590 --- /dev/null +++ b/kubernetes/dmaap/templates/service.yaml @@ -0,0 +1,60 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +#{{ if not .Values.disableBuscontroller }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} + namespace: {{ .Values.global.nsPrefix }} + labels: + app: {{ .Values.buscontroller.service }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: +# Example MSB registration annotation +# msb.onap.org/service-info: '[ +# { +# "serviceName": "so", +# "version": "v1", +# "url": "/ecomp/mso/infra", +# "protocol": "REST" +# "port": "8080", +# "visualRange":"1" +# } +# ]' +spec: + type: {{ .Values.buscontroller.type }} + ports: + {{if eq .Values.buscontroller.type "NodePort" -}} + - port: {{ .Values.buscontroller.httpExternalPort }} + targetPort: {{ .Values.buscontroller.httpExternalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpPort }} + name: "{{ .Values.buscontroller.name }}-http-port" +# This will be needed when we get SSL certificates +# - port: {{ .Values.buscontroller.httpsExternalPort }} +# targetPort: {{ .Values.buscontroller.httpsExternalPort }} +# nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpsPort }} +# name: "{{ .Values.buscontroller.name }}-https-port" + {{- else -}} + - port: {{ .Values.buscontroller.externalPort }} + targetPort: {{ .Values.buscontroller.httpPort }} + name: {{ .Values.buscontroller.name }} + {{- end}} + selector: + app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} + release: {{ .Release.Name }} + +#{{ end }} diff --git a/kubernetes/dmaap/values.yaml b/kubernetes/dmaap/values.yaml new file mode 100644 index 0000000000..9a0bc34ce5 --- /dev/null +++ b/kubernetes/dmaap/values.yaml @@ -0,0 +1,118 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + postgresDatabase: dmaap + postgresUser: dmaap_admin + postgresPassword: onapdemodb + nsPrefix: onap + + +################################################################# +# Application configuration defaults. +################################################################# +#nsPrefix: onap +pullPolicy: Always + +# application images +repository: nexus3.onap.org:10001 + +image: + buscontrollerImage: onap/dmaap/buscontroller + buscontrollerVersion: 1.0.2 + + +# application configuration +# Example: +config: +# username: myusername +# password: mypassword +dmaapMessageRouterService: dmaap +aafURL: https://onap-aaf:8905/proxy/ +topicMgrUser: m23456@dmaapbc.onap.org +topicMgrPwd: onapdemo +adminUser: m12345@dmaapbc.onap.org +adminPwd: onapdemo + + + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +buscontroller: + service: prov-api + type: NodePort + name: buscontroller + httpExternalPort: 8080 + httpsExternalPort: 8443 + httpPort: 42 + httpsPort: 43 +# default number of instances + replicas: 1 +# flag to enable debugging - application support required + debugEnabled: false + +service: + #Example service definition with external, internal and node ports. + #Services may use any combination of ports depending on the 'type' of + #service being defined. + type: NodePort + name: <onap-app> + externalPort: <8080> + internalPort: <80> + nodePort: <replace with unused node port suffix eg. 23> + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/log/charts/log-elasticsearch/resources/config/elasticsearch.yml b/kubernetes/log/charts/log-elasticsearch/resources/config/elasticsearch.yml index e7933b8570..abdab8beb5 100644 --- a/kubernetes/log/charts/log-elasticsearch/resources/config/elasticsearch.yml +++ b/kubernetes/log/charts/log-elasticsearch/resources/config/elasticsearch.yml @@ -116,7 +116,7 @@ http.port: {{.Values.service.externalPort}} # If a range is specified, the node will bind to the first available port in the range. # Defaults to 9300-9400. # More info: -transport.tcp.port: {{.Values.service.externalPortTcp}} +transport.tcp.port: {{.Values.service.externalPort2}} xpack.graph.enabled: false #Set to false to disable X-Pack graph features. diff --git a/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml b/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml index 13caa7e866..fdfc6140fd 100644 --- a/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml +++ b/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml @@ -61,8 +61,8 @@ spec: ports: - containerPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} - - containerPort: {{ .Values.service.internalPortTcp }} - name: {{ .Values.service.name }}-tcp + - containerPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name2 }} # disable liveness probe when breakpoints set in debugger # so K8s doesn't restart unresponsive container {{- if eq .Values.liveness.enabled true }} @@ -74,7 +74,7 @@ spec: {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPortTcp }} + port: {{ .Values.service.internalPort2 }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} env: diff --git a/kubernetes/log/charts/log-elasticsearch/templates/service.yaml b/kubernetes/log/charts/log-elasticsearch/templates/service.yaml index 72dfc7e817..cdc2ea8e77 100644 --- a/kubernetes/log/charts/log-elasticsearch/templates/service.yaml +++ b/kubernetes/log/charts/log-elasticsearch/templates/service.yaml @@ -27,19 +27,40 @@ spec: type: {{ .Values.service.type }} ports: {{if eq .Values.service.type "NodePort" -}} - - port: {{ .Values.service.externalPort }} + - port: {{ .Values.service.internalPort }} nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} name: {{ .Values.service.name }} - - port: {{ .Values.service.internalPortTcp }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPortTcp }} - name: {{ .Values.service.name }}-tcp {{- else -}} - port: {{ .Values.service.externalPort }} targetPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} - - port: {{ .Values.service.externalPortTcp }} - targetPort: {{ .Values.service.internalPortTcp }} - name: {{ .Values.service.name }}-tcp + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.service.name2 }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: +spec: + type: {{ .Values.service.type2 }} + ports: + {{if eq .Values.service.type2 "NodePort" -}} + - port: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name2 }} + {{- else -}} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name2 }} {{- end}} selector: app: {{ include "common.name" . }} diff --git a/kubernetes/log/charts/log-elasticsearch/values.yaml b/kubernetes/log/charts/log-elasticsearch/values.yaml index 2e6e08509e..d5ac1d1781 100644 --- a/kubernetes/log/charts/log-elasticsearch/values.yaml +++ b/kubernetes/log/charts/log-elasticsearch/values.yaml @@ -82,15 +82,16 @@ persistence: mountSubPathLogs: log service: - #Example service definition with external, internal and node ports. - #Services may use any combination of ports depending on the 'type' of - #service being defined. - type: ClusterIP + type: NodePort name: log-es externalPort: 9200 internalPort: 9200 - externalPortTcp: 9300 - internalPortTcp: 9300 + nodePort: 54 + type2: ClusterIP + name2: log-es-tcp + externalPort2: 9300 + internalPort2: 9300 + ingress: enabled: false diff --git a/kubernetes/log/charts/log-kibana/templates/deployment.yaml b/kubernetes/log/charts/log-kibana/templates/deployment.yaml index bdd5a447be..09dc88fb20 100644 --- a/kubernetes/log/charts/log-kibana/templates/deployment.yaml +++ b/kubernetes/log/charts/log-kibana/templates/deployment.yaml @@ -53,27 +53,30 @@ spec: - containerPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} readinessProbe: - tcpSocket: + httpGet: + path: "/" port: {{ .Values.service.internalPort }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} + timeoutSeconds: {{ .Values.readiness.timeoutSeconds }} # disable liveness probe when breakpoints set in debugger # so K8s doesn't restart unresponsive container {{- if eq .Values.liveness.enabled true }} livenessProbe: - tcpSocket: + httpGet: + path: "/" port: {{ .Values.service.internalPort }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} {{ end -}} env: volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /usr/share/kibana/config/kibana.yml + - mountPath: /usr/share/kibana/config/ name: {{ include "common.fullname" . }} - subPath: kibana.yml resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} diff --git a/kubernetes/log/charts/log-kibana/values.yaml b/kubernetes/log/charts/log-kibana/values.yaml index 50c6e52ee0..b09f91ac62 100644 --- a/kubernetes/log/charts/log-kibana/values.yaml +++ b/kubernetes/log/charts/log-kibana/values.yaml @@ -52,15 +52,17 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 120 + initialDelaySeconds: 180 periodSeconds: 10 + timeoutSeconds: 1 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 180 periodSeconds: 10 + timeoutSeconds: 1 service: #Example service definition with external, internal and node ports. diff --git a/kubernetes/log/charts/log-logstash/templates/deployment.yaml b/kubernetes/log/charts/log-logstash/templates/deployment.yaml index 682c448da8..7735c82616 100644 --- a/kubernetes/log/charts/log-logstash/templates/deployment.yaml +++ b/kubernetes/log/charts/log-logstash/templates/deployment.yaml @@ -52,8 +52,8 @@ spec: ports: - containerPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} - - containerPort: {{ .Values.service.internalPortHttp }} - name: {{ .Values.service.name }}-http + - containerPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name2 }} readinessProbe: tcpSocket: port: {{ .Values.service.internalPort }} @@ -73,12 +73,10 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /usr/share/logstash/config/logstash.yml - name: {{ include "common.fullname" . }} - subPath: logstash.yml - - mountPath: /usr/share/logstash/pipeline/onap-pipeline.conf - name: {{ include "common.fullname" . }} - subPath: onap-pipeline.conf + - mountPath: /usr/share/logstash/config/ + name: {{ include "common.fullname" . }}-config + - mountPath: /usr/share/logstash/pipeline/ + name: {{ include "common.fullname" . }}-pipeline resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -93,12 +91,16 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.fullname" . }} + - name: {{ include "common.fullname" . }}-config configMap: name: {{ include "common.fullname" . }} items: - key: logstash.yml path: logstash.yml + - name: {{ include "common.fullname" . }}-pipeline + configMap: + name: {{ include "common.fullname" . }} + items: - key: onap-pipeline.conf path: onap-pipeline.conf imagePullSecrets: diff --git a/kubernetes/log/charts/log-logstash/templates/service.yaml b/kubernetes/log/charts/log-logstash/templates/service.yaml index ca71aa2224..cdc2ea8e77 100644 --- a/kubernetes/log/charts/log-logstash/templates/service.yaml +++ b/kubernetes/log/charts/log-logstash/templates/service.yaml @@ -27,19 +27,40 @@ spec: type: {{ .Values.service.type }} ports: {{if eq .Values.service.type "NodePort" -}} - - port: {{ .Values.service.externalPort }} + - port: {{ .Values.service.internalPort }} nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} name: {{ .Values.service.name }} - - port: {{ .Values.service.internalPortHttp }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPortHttp }} - name: {{ .Values.service.name }}-http {{- else -}} - port: {{ .Values.service.externalPort }} targetPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} - - port: {{ .Values.service.externalPortHttp }} - targetPort: {{ .Values.service.internalPortHttp }} - name: {{ .Values.service.name }}-http + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.service.name2 }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: +spec: + type: {{ .Values.service.type2 }} + ports: + {{if eq .Values.service.type2 "NodePort" -}} + - port: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name2 }} + {{- else -}} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name2 }} {{- end}} selector: app: {{ include "common.name" . }} diff --git a/kubernetes/log/charts/log-logstash/values.yaml b/kubernetes/log/charts/log-logstash/values.yaml index bfe50b54a8..4fcb189bb6 100644 --- a/kubernetes/log/charts/log-logstash/values.yaml +++ b/kubernetes/log/charts/log-logstash/values.yaml @@ -62,12 +62,15 @@ service: #Example service definition with external, internal and node ports. #Services may use any combination of ports depending on the 'type' of #service being defined. - type: ClusterIP + type: NodePort name: log-ls externalPort: 5044 internalPort: 5044 - externalPortHttp: 9600 - internalPortHttp: 9600 + nodePort: 55 + type2: ClusterIP + name2: log-ls-http + externalPort2: 9600 + internalPort2: 9600 ingress: enabled: false diff --git a/kubernetes/message-router/charts/kafka/templates/deployment.yaml b/kubernetes/message-router/charts/kafka/templates/deployment.yaml index cc3ae59e40..347442f8ef 100644 --- a/kubernetes/message-router/charts/kafka/templates/deployment.yaml +++ b/kubernetes/message-router/charts/kafka/templates/deployment.yaml @@ -82,7 +82,9 @@ spec: - name: KAFKA_ADVERTISED_HOST_NAME value: "{{ include "common.fullname" . }}" - name: KAFKA_BROKER_ID - value: "1" + value: "0" + - name: KAFKA_ADVERTISED_LISTENERS + value: PLAINTEXT://{{ include "common.name" . }}:{{.Values.service.internalPort}} - name: KAFKA_ADVERTISED_PORT value: "{{.Values.service.internalPort}}" - name: KAFKA_PORT diff --git a/kubernetes/message-router/values.yaml b/kubernetes/message-router/values.yaml index df3cefae2a..884cd3ed58 100644 --- a/kubernetes/message-router/values.yaml +++ b/kubernetes/message-router/values.yaml @@ -28,7 +28,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/dmaap/dmaap-mr:latest +image: onap/dmaap/dmaap-mr:1.1.3 pullPolicy: Always nameOverride: dmaap diff --git a/kubernetes/msb/charts/msb-discovery/resources/config/log/logback.xml b/kubernetes/msb/charts/msb-discovery/resources/config/log/logback.xml new file mode 100644 index 0000000000..33775962b7 --- /dev/null +++ b/kubernetes/msb/charts/msb-discovery/resources/config/log/logback.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="3 seconds"> + <!--<jmxConfigurator /> --> + <!-- specify the base path of the log directory --> + <property name="logDir" value="/var/log/onap" /> + <!-- specify the component name --> + <property name="componentName" value="msb" /> + <!-- specify the sub component name --> + <property name="subComponentName" value="discovery" /> + <!-- The directories where logs are written --> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + <property name="queueSize" value="256" /> + <property name="maxFileSize" value="50MB" /> + <property name="maxHistory" value="30" /> + <property name="totalSizeCap" value="10GB" /> + <!-- Example evaluator filter applied against console appender --> + <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> + <encoder> + <pattern>${pattern}</pattern> + </encoder> + </appender>
\ No newline at end of file diff --git a/kubernetes/msb/charts/msb-discovery/templates/configmap.yaml b/kubernetes/msb/charts/msb-discovery/templates/configmap.yaml new file mode 100644 index 0000000000..97c720a6ab --- /dev/null +++ b/kubernetes/msb/charts/msb-discovery/templates/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} diff --git a/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml b/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml index 0fb2cc6604..b2660052dd 100644 --- a/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml +++ b/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml @@ -58,6 +58,8 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true + - mountPath: /usr/local/discover-works/logs + name: msb-discovery-logs resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -68,9 +70,23 @@ spec: affinity: {{ toYaml .Values.affinity | indent 10 }} {{- end }} + + # side car containers + - name: filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - mountPath: /var/log/onap + name: msb-discovery-logs + - mountPath: /usr/share/filebeat/data + name: msb-discovery-filebeat volumes: - name: localtime hostPath: path: /etc/localtime + - name: msb-discovery-logs + emptyDir: {} + - name: msb-discovery-filebeat + emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/msb/charts/msb-eag/resources/config/log/logback.xml b/kubernetes/msb/charts/msb-eag/resources/config/log/logback.xml new file mode 100644 index 0000000000..33775962b7 --- /dev/null +++ b/kubernetes/msb/charts/msb-eag/resources/config/log/logback.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="3 seconds"> + <!--<jmxConfigurator /> --> + <!-- specify the base path of the log directory --> + <property name="logDir" value="/var/log/onap" /> + <!-- specify the component name --> + <property name="componentName" value="msb" /> + <!-- specify the sub component name --> + <property name="subComponentName" value="discovery" /> + <!-- The directories where logs are written --> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + <property name="queueSize" value="256" /> + <property name="maxFileSize" value="50MB" /> + <property name="maxHistory" value="30" /> + <property name="totalSizeCap" value="10GB" /> + <!-- Example evaluator filter applied against console appender --> + <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> + <encoder> + <pattern>${pattern}</pattern> + </encoder> + </appender>
\ No newline at end of file diff --git a/kubernetes/msb/charts/msb-eag/templates/configmap.yaml b/kubernetes/msb/charts/msb-eag/templates/configmap.yaml new file mode 100644 index 0000000000..97c720a6ab --- /dev/null +++ b/kubernetes/msb/charts/msb-eag/templates/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} diff --git a/kubernetes/msb/charts/msb-eag/templates/deployment.yaml b/kubernetes/msb/charts/msb-eag/templates/deployment.yaml index 2df82aca59..7ca8a8e203 100644 --- a/kubernetes/msb/charts/msb-eag/templates/deployment.yaml +++ b/kubernetes/msb/charts/msb-eag/templates/deployment.yaml @@ -65,6 +65,8 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true + - mountPath: /usr/local/apiroute-works/logs + name: msb-discovery-logs resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -75,9 +77,22 @@ spec: affinity: {{ toYaml .Values.affinity | indent 10 }} {{- end }} + # side car containers + - name: filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - mountPath: /var/log/onap + name: msb-discovery-logs + - mountPath: /usr/share/filebeat/data + name: msb-discovery-filebeat volumes: - name: localtime hostPath: path: /etc/localtime + - name: msb-discovery-logs + emptyDir: {} + - name: msb-discovery-filebeat + emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/msb/charts/msb-iag/resources/config/log/logback.xml b/kubernetes/msb/charts/msb-iag/resources/config/log/logback.xml new file mode 100644 index 0000000000..33775962b7 --- /dev/null +++ b/kubernetes/msb/charts/msb-iag/resources/config/log/logback.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="3 seconds"> + <!--<jmxConfigurator /> --> + <!-- specify the base path of the log directory --> + <property name="logDir" value="/var/log/onap" /> + <!-- specify the component name --> + <property name="componentName" value="msb" /> + <!-- specify the sub component name --> + <property name="subComponentName" value="discovery" /> + <!-- The directories where logs are written --> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + <property name="queueSize" value="256" /> + <property name="maxFileSize" value="50MB" /> + <property name="maxHistory" value="30" /> + <property name="totalSizeCap" value="10GB" /> + <!-- Example evaluator filter applied against console appender --> + <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> + <encoder> + <pattern>${pattern}</pattern> + </encoder> + </appender>
\ No newline at end of file diff --git a/kubernetes/msb/charts/msb-iag/templates/configmap.yaml b/kubernetes/msb/charts/msb-iag/templates/configmap.yaml new file mode 100644 index 0000000000..97c720a6ab --- /dev/null +++ b/kubernetes/msb/charts/msb-iag/templates/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} diff --git a/kubernetes/msb/charts/msb-iag/templates/deployment.yaml b/kubernetes/msb/charts/msb-iag/templates/deployment.yaml index 2df82aca59..7ca8a8e203 100644 --- a/kubernetes/msb/charts/msb-iag/templates/deployment.yaml +++ b/kubernetes/msb/charts/msb-iag/templates/deployment.yaml @@ -65,6 +65,8 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true + - mountPath: /usr/local/apiroute-works/logs + name: msb-discovery-logs resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -75,9 +77,22 @@ spec: affinity: {{ toYaml .Values.affinity | indent 10 }} {{- end }} + # side car containers + - name: filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - mountPath: /var/log/onap + name: msb-discovery-logs + - mountPath: /usr/share/filebeat/data + name: msb-discovery-filebeat volumes: - name: localtime hostPath: path: /etc/localtime + - name: msb-discovery-logs + emptyDir: {} + - name: msb-discovery-filebeat + emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/msb/resources/config/log/discovery/logback.xml b/kubernetes/msb/resources/config/log/discovery/logback.xml new file mode 100644 index 0000000000..33775962b7 --- /dev/null +++ b/kubernetes/msb/resources/config/log/discovery/logback.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="3 seconds"> + <!--<jmxConfigurator /> --> + <!-- specify the base path of the log directory --> + <property name="logDir" value="/var/log/onap" /> + <!-- specify the component name --> + <property name="componentName" value="msb" /> + <!-- specify the sub component name --> + <property name="subComponentName" value="discovery" /> + <!-- The directories where logs are written --> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + <property name="queueSize" value="256" /> + <property name="maxFileSize" value="50MB" /> + <property name="maxHistory" value="30" /> + <property name="totalSizeCap" value="10GB" /> + <!-- Example evaluator filter applied against console appender --> + <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> + <encoder> + <pattern>${pattern}</pattern> + </encoder> + </appender>
\ No newline at end of file diff --git a/kubernetes/msb/resources/config/log/eag/logback.xml b/kubernetes/msb/resources/config/log/eag/logback.xml new file mode 100644 index 0000000000..dafba4b5d4 --- /dev/null +++ b/kubernetes/msb/resources/config/log/eag/logback.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="3 seconds"> + <!--<jmxConfigurator /> --> + <!-- specify the base path of the log directory --> + <property name="logDir" value="/var/log/onap" /> + <!-- specify the component name --> + <property name="componentName" value="msb" /> + <!-- specify the sub component name --> + <property name="subComponentName" value="eag" /> + <!-- The directories where logs are written --> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + <property name="queueSize" value="256" /> + <property name="maxFileSize" value="50MB" /> + <property name="maxHistory" value="30" /> + <property name="totalSizeCap" value="10GB" /> + <!-- Example evaluator filter applied against console appender --> + <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> + <encoder> + <pattern>${pattern}</pattern> + </encoder> + </appender>
\ No newline at end of file diff --git a/kubernetes/msb/resources/config/log/filebeat/filebeat.yml b/kubernetes/msb/resources/config/log/filebeat/filebeat.yml new file mode 100644 index 0000000000..89c6932577 --- /dev/null +++ b/kubernetes/msb/resources/config/log/filebeat/filebeat.yml @@ -0,0 +1,41 @@ +filebeat.prospectors: +#it is mandatory, in our case it's log +- input_type: log + #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory. + paths: + - /var/log/onap/*/*/*/*.log + - /var/log/onap/*/*/*.log + - /var/log/onap/*/*.log + #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive + ignore_older: 48h + # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit + clean_inactive: 96h + + +# Name of the registry file. If a relative path is used, it is considered relative to the +# data path. Else full qualified file name. +#filebeat.registry_file: ${path.data}/registry + + +output.logstash: + #List of logstash server ip addresses with port number. + #But, in our case, this will be the loadbalancer IP address. + #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately. + hosts: ["logstash.{{.Values.nsPrefix}}:5044"] + #If enable will do load balancing among availabe Logstash, automatically. + loadbalance: true + + #The list of root certificates for server verifications. + #If certificate_authorities is empty or not set, the trusted + #certificate authorities of the host system are used. + #ssl.certificate_authorities: $ssl.certificate_authorities + + #The path to the certificate for SSL client authentication. If the certificate is not specified, + #client authentication is not available. + #ssl.certificate: $ssl.certificate + + #The client certificate key used for client authentication. + #ssl.key: $ssl.key + + #The passphrase used to decrypt an encrypted key stored in the configured key file + #ssl.key_passphrase: $ssl.key_passphrase diff --git a/kubernetes/msb/resources/config/log/iag/logback.xml b/kubernetes/msb/resources/config/log/iag/logback.xml new file mode 100644 index 0000000000..f841859592 --- /dev/null +++ b/kubernetes/msb/resources/config/log/iag/logback.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="true" scan="true" scanPeriod="3 seconds"> + <!--<jmxConfigurator /> --> + <!-- specify the base path of the log directory --> + <property name="logDir" value="/var/log/onap" /> + <!-- specify the component name --> + <property name="componentName" value="msb" /> + <!-- specify the sub component name --> + <property name="subComponentName" value="iag" /> + <!-- The directories where logs are written --> + <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" /> + <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> + <!-- log file names --> + <property name="errorLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + <property name="queueSize" value="256" /> + <property name="maxFileSize" value="50MB" /> + <property name="maxHistory" value="30" /> + <property name="totalSizeCap" value="10GB" /> + <!-- Example evaluator filter applied against console appender --> + <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT"> + <encoder> + <pattern>${pattern}</pattern> + </encoder> + </appender>
\ No newline at end of file diff --git a/kubernetes/msb/values.yaml b/kubernetes/msb/values.yaml index 49e5196e41..2a0dbe2ffa 100644 --- a/kubernetes/msb/values.yaml +++ b/kubernetes/msb/values.yaml @@ -18,3 +18,5 @@ global: nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 diff --git a/kubernetes/multicloud/.helmignore b/kubernetes/multicloud/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/multicloud/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/multicloud/Chart.yaml b/kubernetes/multicloud/Chart.yaml index 4f9a154880..3dbbe29986 100644 --- a/kubernetes/multicloud/Chart.yaml +++ b/kubernetes/multicloud/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: A Helm chart for Kubernetes +description: ONAP multicloud broker name: multicloud -version: 1.1.0 +version: 2.0.0 diff --git a/kubernetes/multicloud/charts/multicloud-ocata/.helmignore b/kubernetes/multicloud/charts/multicloud-ocata/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/multicloud/charts/multicloud-ocata/Chart.yaml b/kubernetes/multicloud/charts/multicloud-ocata/Chart.yaml new file mode 100644 index 0000000000..3dfc80af4e --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP multicloud OpenStack Ocata Plugin +name: multicloud-ocata +version: 2.0.0 diff --git a/kubernetes/multicloud/resources/config/log/ocata/log.yml b/kubernetes/multicloud/charts/multicloud-ocata/resources/config/log/log.yml index ef71b907c8..2ef26b7411 100644 --- a/kubernetes/multicloud/resources/config/log/ocata/log.yml +++ b/kubernetes/multicloud/charts/multicloud-ocata/resources/config/log/log.yml @@ -26,9 +26,9 @@ handlers: formatters: standard: - format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s" mdcFormat: - format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:[%(mdc)s]: %(message)s" - mdcfmt: "{requestID}" + format: "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" datefmt: "%Y-%m-%d %H:%M:%S" - (): onaplogging.mdcformatter.MDCFormatter
\ No newline at end of file + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml new file mode 100644 index 0000000000..8d506fbfb5 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/templates/configmap.yaml @@ -0,0 +1,23 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# # +# # 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. +*/}} + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} diff --git a/kubernetes/multicloud/charts/multicloud-ocata/templates/deployment.yaml b/kubernetes/multicloud/charts/multicloud-ocata/templates/deployment.yaml new file mode 100644 index 0000000000..db8bcdcd57 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/templates/deployment.yaml @@ -0,0 +1,117 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + containers: + - env: + - name: MSB_ADDR + value: "{{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}" + - name: MSB_PORT + value: "{{ .Values.config.msbPort }}" + - name: AAI_ADDR + value: aai.{{ include "common.namespace" . }} + - name: AAI_PORT + value: "{{ .Values.config.aai.port }}" + - name: AAI_SCHEMA_VERSION + value: "{{ .Values.config.aai.schemaVersion }}" + - name: AAI_USERNAME + value: "{{ .Values.config.aai.username }}" + - name: AAI_PASSWORD + value: "{{ .Values.config.aai.password }}" + name: {{ include "common.name" . }} + volumeMounts: + - mountPath: /var/log/onap + name: ocata-log + - mountPath: /opt/ocata/ocata/pub/config/log.yml + name: ocata-logconfig + subPath: log.yml + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + httpGet: + path: /api/multicloud-ocata/v0/swagger.json + port: {{ .Values.service.internalPort }} + scheme: HTTP + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + successThreshold: {{ .Values.liveness.successThreshold }} + failureThreshold: {{ .Values.liveness.failureThreshold }} + {{ end }} + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: filebeat-onap + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: ocata-log + - mountPath: /usr/share/filebeat/data + name: ocata-data-filebeat + + volumes: + - name: ocata-log + emptyDir: {} + - name: ocata-data-filebeat + emptyDir: {} + - name: filebeat-conf + configMap: + name: multicloud-filebeat-configmap + - name: ocata-logconfig + configMap: + name: {{ include "common.fullname" . }}-log-configmap + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + restartPolicy: Always diff --git a/kubernetes/multicloud/charts/multicloud-ocata/templates/service.yaml b/kubernetes/multicloud/charts/multicloud-ocata/templates/service.yaml new file mode 100644 index 0000000000..f47383e0db --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/templates/service.yaml @@ -0,0 +1,52 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# # +# # 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. +*/}} + +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.service.name }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "multicloud-ocata", + "version": "v0", + "url": "/api/multicloud-ocata/v0", + "protocol": "REST", + "port": "{{ .Values.service.externalPort }}", + "visualRange": "1" + } + ]' +spec: + ports: + {{if eq .Values.service.type "NodePort" -}} + - name: {{ .Values.service.name }} + port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + type: {{ .Values.service.type }} diff --git a/kubernetes/multicloud/charts/multicloud-ocata/values.yaml b/kubernetes/multicloud/charts/multicloud-ocata/values.yaml new file mode 100644 index 0000000000..db0397561a --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-ocata/values.yaml @@ -0,0 +1,80 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/multicloud/openstack-ocata:latest +pullPolicy: Always + +# application configuration +config: + msbgateway: msb-iag + msbPort: 80 + aai: + port: 8443 + schemaVersion: v11 + username: AAI + password: AAI + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + successThreshold: 1 + failureThreshold: 5 + enabled: true + +service: + type: NodePort + name: multicloud-ocata + externalPort: 9006 + internalPort: 9006 + nodePort: 93 + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/multicloud/charts/multicloud-vio/.helmignore b/kubernetes/multicloud/charts/multicloud-vio/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/multicloud/charts/multicloud-vio/Chart.yaml b/kubernetes/multicloud/charts/multicloud-vio/Chart.yaml new file mode 100644 index 0000000000..83aa96ab90 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP multicloud VIO plugin +name: multicloud-vio +version: 2.0.0 diff --git a/kubernetes/multicloud/resources/config/log/vio/log.yml b/kubernetes/multicloud/charts/multicloud-vio/resources/config/log/log.yml index 91654645c8..91654645c8 100644 --- a/kubernetes/multicloud/resources/config/log/vio/log.yml +++ b/kubernetes/multicloud/charts/multicloud-vio/resources/config/log/log.yml diff --git a/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml new file mode 100644 index 0000000000..8d506fbfb5 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/templates/configmap.yaml @@ -0,0 +1,23 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# # +# # 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. +*/}} + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} diff --git a/kubernetes/multicloud/charts/multicloud-vio/templates/deployment.yaml b/kubernetes/multicloud/charts/multicloud-vio/templates/deployment.yaml new file mode 100644 index 0000000000..903963b34b --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/templates/deployment.yaml @@ -0,0 +1,115 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: multicloud-vio + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + containers: + - env: + - name: MSB_ADDR + value: "{{ .Values.config.msbgateway }}" + - name: MSB_PORT + value: "{{ .Values.config.msbPort }}.{{ include "common.namespace" . }}" + - name: AAI_ADDR + value: aai.{{ include "common.namespace" . }} + - name: AAI_PORT + value: "{{ .Values.config.aai.port }}" + - name: AAI_SCHEMA_VERSION + value: "{{ .Values.config.aai.schemaVersion }}" + - name: AAI_USERNAME + value: "{{ .Values.config.aai.username }}" + - name: AAI_PASSWORD + value: "{{ .Values.config.aai.password }}" + name: {{ include "common.name" . }} + volumeMounts: + - mountPath: /var/log/onap + name: vio-log + - mountPath: /opt/vio/vio/pub/config/log.yml + name: vio-logconfig + subPath: log.yml + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + httpGet: + path: /api/multicloud-vio/v0/swagger.json + port: {{ .Values.service.internalPort }} + scheme: HTTP + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + successThreshold: {{ .Values.liveness.successThreshold }} + failureThreshold: {{ .Values.liveness.failureThreshold }} + {{ end -}} + + # side car containers + - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: filebeat-onap + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: vio-log + - mountPath: /usr/share/filebeat/data + name: vio-data-filebeat + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + volumes: + - name: vio-log + emptyDir: {} + - name: vio-data-filebeat + emptyDir: {} + - name: filebeat-conf + configMap: + name: multicloud-filebeat-configmap + - name: vio-logconfig + configMap: + name: {{ include "common.fullname" . }}-log-configmap + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + restartPolicy: Always diff --git a/kubernetes/multicloud/charts/multicloud-vio/templates/service.yaml b/kubernetes/multicloud/charts/multicloud-vio/templates/service.yaml new file mode 100644 index 0000000000..dcaf37d192 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/templates/service.yaml @@ -0,0 +1,52 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# # +# # 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. +*/}} + +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.service.name }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "multicloud-vio", + "version": "v0", + "url": "/api/multicloud-vio/v0", + "protocol": "REST", + "port": "{{ .Values.service.externalPort }}", + "visualRange": "1" + } + ]' +spec: + ports: + {{if eq .Values.service.type "NodePort" -}} + - name: {{ .Values.service.name }} + port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + type: {{ .Values.service.type }} diff --git a/kubernetes/multicloud/charts/multicloud-vio/values.yaml b/kubernetes/multicloud/charts/multicloud-vio/values.yaml new file mode 100644 index 0000000000..187f2b9562 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-vio/values.yaml @@ -0,0 +1,80 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/multicloud/vio:latest +pullPolicy: Always + +# application configuration +config: + msbgateway: msb-iag + msbPort: 80 + aai: + port: 8443 + schemaVersion: v11 + username: AAI + password: AAI + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + successThreshold: 1 + failureThreshold: 5 + enabled: true + +service: + type: NodePort + name: multicloud-vio + externalPort: 9004 + internalPort: 9004 + nodePort: 92 + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/multicloud/charts/multicloud-windriver/.helmignore b/kubernetes/multicloud/charts/multicloud-windriver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/multicloud/charts/multicloud-windriver/Chart.yaml b/kubernetes/multicloud/charts/multicloud-windriver/Chart.yaml new file mode 100644 index 0000000000..ef345f619d --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP multicloud OpenStack WindRiver Plugin +name: multicloud-windriver +version: 2.0.0 diff --git a/kubernetes/multicloud/resources/config/log/windriver/log.yml b/kubernetes/multicloud/charts/multicloud-windriver/resources/config/log/log.yml index 8e2c5c25f9..6c1957db33 100644 --- a/kubernetes/multicloud/resources/config/log/windriver/log.yml +++ b/kubernetes/multicloud/charts/multicloud-windriver/resources/config/log/log.yml @@ -26,9 +26,9 @@ handlers: formatters: standard: - format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s" mdcFormat: - format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:[%(mdc)s]: %(message)s" - mdcfmt: "{requestID}" + format: "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" datefmt: "%Y-%m-%d %H:%M:%S" - (): onaplogging.mdcformatter.MDCFormatter
\ No newline at end of file + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml new file mode 100644 index 0000000000..8d506fbfb5 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/configmap.yaml @@ -0,0 +1,23 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# # +# # 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. +*/}} + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/deployment.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/deployment.yaml new file mode 100644 index 0000000000..02a78bbd16 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/deployment.yaml @@ -0,0 +1,117 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + containers: + - env: + - name: MSB_ADDR + value: "{{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}" + - name: MSB_PORT + value: "{{ .Values.config.msbPort }}" + - name: AAI_ADDR + value: aai-service.{{ include "common.namespace" . }} + - name: AAI_PORT + value: "{{ .Values.config.aai.port }}" + - name: AAI_SCHEMA_VERSION + value: "{{ .Values.config.aai.schemaVersion }}" + - name: AAI_USERNAME + value: "{{ .Values.config.aai.username }}" + - name: AAI_PASSWORD + value: "{{ .Values.config.aai.password }}" + name: {{ include "common.name" . }} + volumeMounts: + - mountPath: /var/log/onap + name: windriver-log + - mountPath: /opt/windriver/titanium_cloud/pub/config/log.yml + name: windriver-logconfig + subPath: log.yml + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + httpGet: + path: /api/multicloud-titanium_cloud/v0/swagger.json + port: {{ .Values.service.internalPort }} + scheme: HTTP + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + successThreshold: {{ .Values.liveness.successThreshold }} + failureThreshold: {{ .Values.liveness.failureThreshold }} + {{ end }} + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: filebeat-onap + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: windriver-log + - mountPath: /usr/share/filebeat/data + name: windriver-data-filebeat + + volumes: + - name: windriver-log + emptyDir: {} + - name: windriver-data-filebeat + emptyDir: {} + - name: filebeat-conf + configMap: + name: multicloud-filebeat-configmap + - name: windriver-logconfig + configMap: + name: {{ include "common.fullname" . }}-log-configmap + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + restartPolicy: Always diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/service.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/service.yaml new file mode 100644 index 0000000000..dd3bd4214f --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/templates/service.yaml @@ -0,0 +1,53 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# # +# # 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. +*/}} + +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.service.name }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "multicloud-titanium_cloud", + "version": "v0", + "url": "/api/multicloud-titanium_cloud/v0", + "protocol": "REST", + "port": "{{ .Values.service.internalPort }}", + "visualRange": "1" + } + ]' + +spec: + ports: + {{ if eq .Values.service.type "NodePort" }} + - name: {{ .Values.service.name }} + port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + {{ else }} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{ end }} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + type: {{ .Values.service.type }} diff --git a/kubernetes/multicloud/charts/multicloud-windriver/values.yaml b/kubernetes/multicloud/charts/multicloud-windriver/values.yaml new file mode 100644 index 0000000000..1126284f11 --- /dev/null +++ b/kubernetes/multicloud/charts/multicloud-windriver/values.yaml @@ -0,0 +1,80 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/multicloud/openstack-windriver:latest +pullPolicy: Always + +# application configuration +config: + msbgateway: msb-iag + msbPort: 80 + aai: + port: 8443 + schemaVersion: v11 + username: AAI + password: AAI + +service: + type: NodePort + name: multicloud-windriver + externalPort: 9005 + internalPort: 9005 + nodePort: 94 + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + successThreshold: 1 + failureThreshold: 5 + enabled: true + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/multicloud/requirements.yaml b/kubernetes/multicloud/requirements.yaml new file mode 100644 index 0000000000..ce82a2f838 --- /dev/null +++ b/kubernetes/multicloud/requirements.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +dependencies: + - name: common + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/multicloud/templates/all-services.yaml b/kubernetes/multicloud/templates/all-services.yaml deleted file mode 100644 index c58cd7486e..0000000000 --- a/kubernetes/multicloud/templates/all-services.yaml +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableMulticloudFramework }} -apiVersion: v1 -kind: Service -metadata: - name: framework - namespace: "{{ .Values.nsPrefix }}" - labels: - name: framework - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "multicloud", - "version": "v0", - "url": "/api/multicloud/v0", - "protocol": "REST", - "port": "9001", - "visualRange": "1" - } - ]' -spec: - ports: - - name: "framework-port" - port: 9001 - nodePort: {{ .Values.nodePortPrefix }}91 - selector: - app: framework - type: NodePort -#{{ end }} -#{{ if not .Values.disableMulticloudMulticloudVio }} ---- -apiVersion: v1 -kind: Service -metadata: - name: multicloud-vio - namespace: "{{ .Values.nsPrefix }}" - labels: - name: multicloud-vio - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "multicloud-vio", - "version": "v0", - "url": "/api/multicloud-vio/v0", - "protocol": "REST", - "port": "9004", - "visualRange": "1" - } - ]' - -spec: - ports: - - name: "multicloud-port" - port: 9004 - nodePort: {{ .Values.nodePortPrefix }}92 - selector: - app: multicloud-vio - type: NodePort -#{{ end }} -#{{ if not .Values.disableMulticloudMulticloudOcata }} ---- -apiVersion: v1 -kind: Service -metadata: - name: multicloud-ocata - namespace: "{{ .Values.nsPrefix }}" - labels: - name: multicloud-ocata - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "multicloud-ocata", - "version": "v0", - "url": "/api/multicloud-ocata/v0", - "protocol": "REST", - "port": "9006", - "visualRange": "1" - } - ]' - -spec: - ports: - - name: "multicloud-port" - port: 9006 - nodePort: {{ .Values.nodePortPrefix }}93 - selector: - app: multicloud-ocata - type: NodePort -#{{ end }} -#{{ if not .Values.disableMulticloudMulticloudWindriver }} ---- -apiVersion: v1 -kind: Service -metadata: - name: multicloud-windriver - namespace: "{{ .Values.nsPrefix }}" - labels: - name: multicloud-windriver - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "multicloud-titanium_cloud", - "version": "v0", - "url": "/api/multicloud-titanium_cloud/v0", - "protocol": "REST", - "port": "9005", - "visualRange": "1" - } - ]' - -spec: - ports: - - name: "multicloud-port" - port: 9005 - nodePort: {{ .Values.nodePortPrefix }}94 - selector: - app: multicloud-windriver - type: NodePort -#{{ end }}
\ No newline at end of file diff --git a/kubernetes/vnfsdk/templates/all-services.yaml b/kubernetes/multicloud/templates/configmap.yaml index b592c47bad..e420fb99f7 100644 --- a/kubernetes/vnfsdk/templates/all-services.yaml +++ b/kubernetes/multicloud/templates/configmap.yaml @@ -1,3 +1,4 @@ +{{/* # Copyright © 2017 Amdocs, Bell Canada # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -11,38 +12,20 @@ # 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 not .Values.disableVnfsdkPostgres }} apiVersion: v1 -kind: Service +kind: ConfigMap metadata: - name: postgres - namespace: {{ .Values.nsPrefix }} - labels: - app: postgres -spec: - ports: - - name: postgres-port - port: 5432 - selector: - app: postgres - clusterIP: None -#{{ end }} -#{{ if not .Values.disableVnfsdkRefrepo }} + name: multicloud-filebeat-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} --- apiVersion: v1 -kind: Service +kind: ConfigMap metadata: - labels: - app: refrepo - name: refrepo - namespace: {{ .Values.nsPrefix }} -spec: - ports: - - name: "refrepo-port" - port: 8702 - nodePort: {{ .Values.nodePortPrefix }}97 - selector: - app: refrepo - type: NodePort -#{{ end }}
\ No newline at end of file + name: {{ include "common.fullname" . }}-log-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }} diff --git a/kubernetes/multicloud/templates/deployment.yaml b/kubernetes/multicloud/templates/deployment.yaml new file mode 100644 index 0000000000..f42d5f3f8f --- /dev/null +++ b/kubernetes/multicloud/templates/deployment.yaml @@ -0,0 +1,117 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + containers: + - env: + - name: MSB_ADDR + value: {{ .Values.config.msbgateway }}.{{ include "common.namespace" . }} + - name: MSB_PORT + value: "{{ .Values.config.msbPort }}" + - name: AAI_ADDR + value: "aai.{{ include "common.namespace" . }}" + - name: AAI_PORT + value: "{{ .Values.config.aai.port }}" + - name: AAI_SCHEMA_VERSION + value: "{{ .Values.config.aai.schemaVersion }}" + - name: AAI_USERNAME + value: "{{ .Values.config.aai.username }}" + - name: AAI_PASSWORD + value: "{{ .Values.config.aai.password }}" + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }} + volumeMounts: + - mountPath: /var/log/onap + name: framework-log + - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml + name: framework-logconfig + subPath: log.yml + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + httpGet: + path: /api/multicloud/v0/swagger.json + port: {{ .Values.service.internalPort }} + scheme: HTTP + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + successThreshold: {{ .Values.liveness.successThreshold }} + failureThreshold: {{ .Values.liveness.failureThreshold }} + {{ end -}} + + # side car containers + - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: filebeat-onap + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + name: filebeat-conf + subPath: filebeat.yml + - mountPath: /var/log/onap + name: framework-log + - mountPath: /usr/share/filebeat/data + name: framework-data-filebeat + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + volumes: + - name: framework-log + emptyDir: {} + - name: framework-data-filebeat + emptyDir: {} + - name: filebeat-conf + configMap: + name: multicloud-filebeat-configmap + - name: framework-logconfig + configMap: + name: {{ include "common.fullname" . }}-log-configmap + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + restartPolicy: Always diff --git a/kubernetes/multicloud/templates/framework-deployment.yaml b/kubernetes/multicloud/templates/framework-deployment.yaml deleted file mode 100644 index b2f0440263..0000000000 --- a/kubernetes/multicloud/templates/framework-deployment.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableMulticloudFramework }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: multicloud-framework - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.frameworkReplicas }} - selector: - matchLabels: - app: framework - template: - metadata: - labels: - app: framework - name: multicloud-framework - spec: - containers: - - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbgateway . }} - - name: MSB_PORT - value: "{{ .Values.msbPort }}" - - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }} - - name: AAI_PORT - value: "8443" - - name: AAI_SCHEMA_VERSION - value: "v11" - - name: AAI_USERNAME - value: "AAI" - - name: AAI_PASSWORD - value: "AAI" - image: {{ .Values.image.framework }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: framework - volumeMounts: - - mountPath: /var/log/onap - name: framework-log - - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml - name: framework-logconfig - subPath: log.yml - ports: - - containerPort: 9001 - livenessProbe: - httpGet: - path: /api/multicloud/v0/swagger.json - port: 9001 - scheme: HTTP - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 10 - successThreshold: 1 - failureThreshold: 5 - - image: {{ .Values.image.filebeat }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: filebeat-onap - volumeMounts: - - mountPath: /usr/share/filebeat/filebeat.yml - name: filebeat-conf - subPath: filebeat.yml - - mountPath: /var/log/onap - name: framework-log - - mountPath: /usr/share/filebeat/data - name: framework-data-filebeat - volumes: - - name: framework-log - emptyDir: {} - - name: framework-data-filebeat - emptyDir: {} - - name: filebeat-conf - configMap: - name: multicloud-filebeat-configmap - - name: framework-logconfig - configMap: - name: multicloud-framework-log-configmap - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" - restartPolicy: Always -#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-log-configmap.yaml b/kubernetes/multicloud/templates/multicloud-log-configmap.yaml deleted file mode 100644 index 1050f1061e..0000000000 --- a/kubernetes/multicloud/templates/multicloud-log-configmap.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVidVidServer }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: multicloud-filebeat-configmap - namespace: {{ .Values.nsPrefix }} -data: -{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: multicloud-framework-log-configmap - namespace: {{ .Values.nsPrefix }} -data: -{{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: multicloud-vio-log-configmap - namespace: {{ .Values.nsPrefix }} -data: -{{ tpl (.Files.Glob "resources/config/log/vio/*").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: multicloud-ocata-log-configmap - namespace: {{ .Values.nsPrefix }} -data: -{{ tpl (.Files.Glob "resources/config/log/ocata/*").AsConfig . | indent 2 }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: multicloud-windriver-log-configmap - namespace: {{ .Values.nsPrefix }} -data: -{{ tpl (.Files.Glob "resources/config/log/windriver/*").AsConfig . | indent 2 }} -#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml b/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml deleted file mode 100644 index ecbd74b067..0000000000 --- a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableMulticloudMulticloudOcata }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: multicloud-ocata - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.ocataReplicas }} - selector: - matchLabels: - app: multicloud-ocata - template: - metadata: - labels: - app: multicloud-ocata - name: multicloud-ocata - spec: - containers: - - env: - - name: MSB_ADDR - value: "{{ tpl .Values.msbgateway . }}" - - name: MSB_PORT - value: "{{ .Values.msbPort }}" - - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }} - - name: AAI_PORT - value: "8443" - - name: AAI_SCHEMA_VERSION - value: "v11" - - name: AAI_USERNAME - value: "AAI" - - name: AAI_PASSWORD - value: "AAI" - name: multicloud-ocata - volumeMounts: - - mountPath: /var/log/onap - name: ocata-log - - mountPath: /opt/ocata/ocata/pub/config/log.yml - name: ocata-logconfig - subPath: log.yml - image: {{ .Values.image.ocata }} - imagePullPolicy: {{ .Values.pullPolicy }} - ports: - - containerPort: 9006 - livenessProbe: - httpGet: - path: /api/multicloud-ocata/v0/swagger.json - port: 9006 - scheme: HTTP - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 10 - successThreshold: 1 - failureThreshold: 5 - - image: {{ .Values.image.filebeat }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: filebeat-onap - volumeMounts: - - mountPath: /usr/share/filebeat/filebeat.yml - name: filebeat-conf - subPath: filebeat.yml - - mountPath: /var/log/onap - name: ocata-log - - mountPath: /usr/share/filebeat/data - name: ocata-data-filebeat - volumes: - - name: ocata-log - emptyDir: {} - - name: ocata-data-filebeat - emptyDir: {} - - name: filebeat-conf - configMap: - name: multicloud-filebeat-configmap - - name: ocata-logconfig - configMap: - name: multicloud-ocata-log-configmap - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" - restartPolicy: Always -#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml b/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml deleted file mode 100644 index e15108116d..0000000000 --- a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableMulticloudMulticloudVio }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: multicloud-vio - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.vioReplicas }} - selector: - matchLabels: - app: multicloud-vio - template: - metadata: - labels: - app: multicloud-vio - name: multicloud-vio - spec: - containers: - - env: - - name: MSB_ADDR - value: "{{ tpl .Values.msbgateway . }}" - - name: MSB_PORT - value: "{{ .Values.msbPort }}" - - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }} - - name: AAI_PORT - value: "8443" - - name: AAI_SCHEMA_VERSION - value: "v11" - - name: AAI_USERNAME - value: "AAI" - - name: AAI_PASSWORD - value: "AAI" - name: multicloud-vio - volumeMounts: - - mountPath: /var/log/onap - name: vio-log - - mountPath: /opt/vio/vio/pub/config/log.yml - name: vio-logconfig - subPath: log.yml - image: {{ .Values.image.vio }} - imagePullPolicy: {{ .Values.pullPolicy }} - ports: - - containerPort: 9004 - livenessProbe: - httpGet: - path: /api/multicloud-vio/v0/swagger.json - port: 9004 - scheme: HTTP - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 10 - successThreshold: 1 - failureThreshold: 5 - - image: {{ .Values.image.filebeat }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: filebeat-onap - volumeMounts: - - mountPath: /usr/share/filebeat/filebeat.yml - name: filebeat-conf - subPath: filebeat.yml - - mountPath: /var/log/onap - name: vio-log - - mountPath: /usr/share/filebeat/data - name: vio-data-filebeat - volumes: - - name: vio-log - emptyDir: {} - - name: vio-data-filebeat - emptyDir: {} - - name: filebeat-conf - configMap: - name: multicloud-filebeat-configmap - - name: vio-logconfig - configMap: - name: multicloud-vio-log-configmap - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" - restartPolicy: Always -#{{ end }} diff --git a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml b/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml deleted file mode 100644 index c1b385865b..0000000000 --- a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableMulticloudMulticloudWindriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: multicloud-windriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.windRiverReplicas }} - selector: - matchLabels: - app: multicloud-windriver - template: - metadata: - labels: - app: multicloud-windriver - name: multicloud-windriver - spec: - containers: - - env: - - name: MSB_ADDR - value: "{{ tpl .Values.msbgateway . }}" - - name: MSB_PORT - value: "{{ .Values.msbPort }}" - - name: AAI_ADDR - value: aai-service.{{ .Values.nsPrefix }} - - name: AAI_PORT - value: "8443" - - name: AAI_SCHEMA_VERSION - value: "v11" - - name: AAI_USERNAME - value: "AAI" - - name: AAI_PASSWORD - value: "AAI" - name: multicloud-windriver - volumeMounts: - - mountPath: /var/log/onap - name: windriver-log - - mountPath: /opt/windriver/titanium_cloud/pub/config/log.yml - name: windriver-logconfig - subPath: log.yml - image: {{ .Values.image.windriver }} - imagePullPolicy: {{ .Values.pullPolicy }} - ports: - - containerPort: 9005 - livenessProbe: - httpGet: - path: /api/multicloud-titanium_cloud/v0/swagger.json - port: 9005 - scheme: HTTP - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 10 - successThreshold: 1 - failureThreshold: 5 - - image: {{ .Values.image.filebeat }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: filebeat-onap - volumeMounts: - - mountPath: /usr/share/filebeat/filebeat.yml - name: filebeat-conf - subPath: filebeat.yml - - mountPath: /var/log/onap - name: windriver-log - - mountPath: /usr/share/filebeat/data - name: windriver-data-filebeat - volumes: - - name: windriver-log - emptyDir: {} - - name: windriver-data-filebeat - emptyDir: {} - - name: filebeat-conf - configMap: - name: multicloud-filebeat-configmap - - name: windriver-logconfig - configMap: - name: multicloud-windriver-log-configmap - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" - restartPolicy: Always -#{{ end }} diff --git a/kubernetes/multicloud/templates/service.yaml b/kubernetes/multicloud/templates/service.yaml new file mode 100644 index 0000000000..9f18c5e236 --- /dev/null +++ b/kubernetes/multicloud/templates/service.yaml @@ -0,0 +1,52 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.service.name }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "multicloud", + "version": "v0", + "url": "/api/multicloud/v0", + "protocol": "REST", + "port": {{ .Values.service.externalPort }}, + "visualRange": "1" + } + ]' +spec: + ports: + {{if eq .Values.service.type "NodePort" -}} + - name: {{ .Values.service.name }} + port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + type: {{ .Values.service.type }} diff --git a/kubernetes/multicloud/values.yaml b/kubernetes/multicloud/values.yaml index d43ee61343..8a30d1aa58 100644 --- a/kubernetes/multicloud/values.yaml +++ b/kubernetes/multicloud/values.yaml @@ -12,25 +12,76 @@ # See the License for the specific language governing permissions and # limitations under the License. -nsPrefix: onap +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/multicloud/framework:latest pullPolicy: Always -nodePortPrefix: 302 -dataRootDir: /dockerdata-nfs -frameworkReplicas: 1 -ocataReplicas: 1 -vioReplicas: 1 -windRiverReplicas: 1 -image: - readiness: oomk8s/readiness-check:1.1.0 - framework: nexus3.onap.org:10001/onap/multicloud/framework:latest - vio: nexus3.onap.org:10001/onap/multicloud/vio:latest - ocata: nexus3.onap.org:10001/onap/multicloud/openstack-ocata:latest - windriver: nexus3.onap.org:10001/onap/multicloud/openstack-windriver:latest - filebeat: docker.elastic.co/beats/filebeat:5.5.0 -# domain name of msb gateway -msbgateway: msb-iag.{{ .Values.nsPrefix }} -msbPort: 80 +# application configuration config: + msbgateway: msb-iag + msbPort: 80 logstashServiceName: log-ls logstashPort: 5044 + aai: + port: 8443 + schemaVersion: v11 + username: AAI + password: AAI + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 10 + successThreshold: 1 + failureThreshold: 5 + enabled: true + +service: + type: NodePort + name: multicloud + externalPort: 9001 + internalPort: 9001 + nodePort: 91 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml index c36158829e..8d4f42c676 100644 --- a/kubernetes/onap/requirements.yaml +++ b/kubernetes/onap/requirements.yaml @@ -69,7 +69,7 @@ dependencies: repository: '@local' condition: msb.enabled - name: multicloud - version: ~1.1.0 + version: ~2.0.0 repository: '@local' condition: multicloud.enabled - name: policy @@ -101,7 +101,7 @@ dependencies: repository: '@local' condition: uui.enabled - name: vfc - version: ~0.1.0 + version: ~2.0.0 repository: '@local' condition: vfc.enabled - name: vid @@ -109,6 +109,6 @@ dependencies: repository: '@local' condition: vid.enabled - name: vnfsdk - version: ~1.1.0 + version: ~2.0.0 repository: '@local' condition: vnfsdk.enabled diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml index 910ade9108..c4cc253b7f 100644 --- a/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml @@ -30,21 +30,6 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: - initContainers: - - command: - - /root/ready.py - args: - - --container-name - - {{ .Values.global.mariadb.nameOverride }} - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - name: {{ include "common.name" . }}-readiness containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" diff --git a/kubernetes/policy/charts/drools/charts/nexus/values.yaml b/kubernetes/policy/charts/drools/charts/nexus/values.yaml index 2ed55ef3bd..0ae0eb801f 100644 --- a/kubernetes/policy/charts/drools/charts/nexus/values.yaml +++ b/kubernetes/policy/charts/drools/charts/nexus/values.yaml @@ -26,7 +26,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/policy-nexus:1.2-SNAPSHOT-latest +image: sonatype/nexus:2.14.8-01 pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/apps-install.sh b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/apps-install.sh new file mode 100644 index 0000000000..72f7a74695 --- /dev/null +++ b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/apps-install.sh @@ -0,0 +1,124 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# + +# ################################# +# Usage +# ################################# + +function usage { + echo + echo "Usage: $(basename $0) <application-name> <zipped-application-version> <download-directory>" + echo "Example: $(basename $0) controlloop 1.2.0 /opt/policy/config/drools" + echo +} + +# ################################# +# snapshot url computation +# ################################# + +function url_snapshot { + if [[ $DEBUG == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + APP_URL="${APP_URL}/snapshots/org/onap/policy/drools-applications/${APP_NAME}/packages/apps-${APP_NAME}/${APP_VERSION}" + + local APP_METADATA_URL="${APP_URL}/maven-metadata.xml" + local APP_SNAPSHOT_VERSION=$(curl --silent "${APP_METADATA_URL}" | grep -Po "(?<=<value>).*(?=</value>)" | sort -V | tail -1) + + if [[ -z ${APP_SNAPSHOT_VERSION} ]]; then + echo "ERROR: cannot compute SNAPSHOT version" + usage + exit 1 + fi + + APP_URL="${APP_URL}/apps-${APP_NAME}-${APP_SNAPSHOT_VERSION}.zip" +} + +# ################################# +# release url computation +# ################################# + +function url_release { + if [[ $DEBUG == y ]]; then + echo "-- ${FUNCNAME[0]} --" + set -x + fi + + APP_URL="${APP_URL}/releases/org/onap/policy/drools-applications/${APP_NAME}/packages/apps-${APP_NAME}/${APP_VERSION}/apps-${APP_NAME}-${APP_VERSION}.zip" +} + +# ################################# +# Main +# ################################# + +if [[ $DEBUG == y ]]; then + set -x +fi + +APP_NAME=$1 +if [[ -z ${APP_NAME} ]]; then + echo "ERROR: no APPLICATION NAME provided (ie. controlloop)" + usage + exit 1 +fi + +APP_VERSION=$2 +if [[ -z ${APP_VERSION} ]]; then + echo "ERROR: no APPLICATION VERSION provided" + usage + exit 1 +fi + +DOWNLOAD_DIR=$3 +if [[ -z ${DOWNLOAD_DIR} ]]; then + echo "ERROR: no DOWNLOAD DIRECTORY provided" + usage + exit 1 +fi + +if [[ ! -d ${DOWNLOAD_DIR} ]]; then + echo "ERROR: ${DOWNLOAD_DIR} is not a directory" + usage + exit 1 +fi + +APP_GROUP_ID="org.onap.policy.drools-applications.${APP_NAME}.packages" +APP_ARTIFACT_ID="apps-${APP_NAME}" +APP_BASE_URL="https://nexus.onap.org/content/repositories" + +APP_URL="${APP_BASE_URL}" + +if [[ ${APP_VERSION} =~ \-SNAPSHOT$ ]]; then + url_snapshot +else + url_release +fi + +wget "${APP_URL}" -O "${DOWNLOAD_DIR}"/apps-"${APP_NAME}".zip +if [[ $? != 0 ]]; then + echo "ERROR: cannot download ${DOWNLOAD_DIR}/apps-${APP_NAME}.zip" + exit 1 +fi + +echo "APP ${APP_NAME} stored at ${DOWNLOAD_DIR}/apps-${APP_NAME}.zip" +ls -l "${DOWNLOAD_DIR}"/apps-"${APP_NAME}".zip diff --git a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/base.conf b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/base.conf index 127a483da5..a7ab3ee141 100644 --- a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/base.conf +++ b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/base.conf @@ -1,4 +1,4 @@ -# Copyright © 2017 Amdocs, Bell Canada, AT&T +# Copyright © 2017-2018 Amdocs, Bell Canada, AT&T # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,9 +15,9 @@ # SYSTEM software configuration POLICY_HOME=/opt/app/policy -POLICY_LOGS=/var/log/ONAP/policy +POLICY_LOGS=/var/log/onap/policy/pdpd JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 -KEYSTORE_PASSWD=PolicyR0ck$ +KEYSTORE_PASSWD=Pol1cy_0nap # Telemetry credentials diff --git a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh index 62822ac824..65ef7053cd 100644 --- a/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh +++ b/kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/drools-tweaks.sh @@ -1,4 +1,6 @@ -# Copyright © 2017 Amdocs, Bell Canada, AT&T +#! /bin/bash + +# Copyright © 2017-2018 Amdocs, Bell Canada, AT&T # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,6 +14,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -#! /bin/bash ${POLICY_HOME}/bin/features enable healthcheck diff --git a/kubernetes/policy/charts/drools/templates/statefulset.yaml b/kubernetes/policy/charts/drools/templates/statefulset.yaml index edff99a7cd..7a616d71e6 100644 --- a/kubernetes/policy/charts/drools/templates/statefulset.yaml +++ b/kubernetes/policy/charts/drools/templates/statefulset.yaml @@ -100,6 +100,9 @@ spec: - mountPath: /tmp/policy-install/config/drools-tweaks.sh name: drools-config subPath: drools-tweaks.sh + - mountPath: /tmp/policy-install/config/apps-install.sh + name: drools-config + subPath: apps-install.sh - mountPath: /usr/share/maven/conf/settings.xml name: drools-settingsxml subPath: settings.xml diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties index 95ece9e912..3fada2e063 100644 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties @@ -13,7 +13,7 @@ music.serialize.compress = true #By default it's eventual music.atomic.get = false music.atomic.put = true -cassandra.host={{.Values.cassandra.service.name}}.{{.Release.Namespace}} -zookeeper.host={{.Values.zookeeper.service.name}}.{{.Release.Namespace}} +cassandra.host={{.Release.Name}}-{{.Values.cassandra.chart.name}}.{{.Release.Namespace}} +zookeeper.host={{.Release.Name}}-{{.Values.zookeeper.chart.name}}.{{.Release.Namespace}} cassandra.user={{.Values.cassandra.config.cassandraUsername}} cassandra.password={{.Values.cassandra.config.cassandraPassword}}
\ No newline at end of file diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties index 1ef1febfcc..0e3381c61a 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties @@ -16,9 +16,14 @@ ueb_app_key = 7GkVcrO6sIDb3ngW ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9 ueb_app_mailbox_name = ECOMP-PORTAL-INBOX -ueb_url_list = dmaap.{{.Release.Namespace}} +ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}} ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Consumer group name for UEB topic. # Use the special tag to generate a unique one for each sdk-app server. ueb_app_consumer_group_name = {UUID} + +role_access_centralized = remote + +ext_req_connection_timeout = 15000 +ext_req_read_timeout = 20000 diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties index 9a3ee56117..765ba02b57 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties @@ -1,6 +1,6 @@ #mysql db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb:failover://{{.Values.mariadb.service.name}}.{{.Release.Namespace}}:3306/portal +db.connectionURL = jdbc:mariadb:failover://{{.Release.Name}}-{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/portal db.userName =root db.password =Aa123456 db.hib.dialect = org.hibernate.dialect.MySQLDialect @@ -44,7 +44,7 @@ log_cron = 0 * * * * ? * sessiontimeout_feed_cron = 0 0/5 * * * ? * #Front end URL -frontend_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/applicationsHome +frontend_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/applicationsHome # An Unqiue 128-bit value defined to indentify a specific version of @@ -82,7 +82,7 @@ notification_update_duration = 900 #Microservices Related Properties for Portal microservices.widget.protocol = http -microservices.widget.hostname = {{.Values.widget.service.name}}.{{.Release.Namespace}} +microservices.widget.hostname = {{.Release.Name}}-{{.Values.widget.chart.name}}.{{.Release.Namespace}} microservices.widget.username = widget_user microservices.widget.password = M+KcrCMVrR1rAxtiFE49n1uXC3FCkNBqFgeYsubEC/U= #This property won't be needed after consul is functional on VMs - diff --git a/kubernetes/portal/charts/portal-app/templates/deployment.yaml b/kubernetes/portal/charts/portal-app/templates/deployment.yaml index bfe1033821..7ed8cca681 100644 --- a/kubernetes/portal/charts/portal-app/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-app/templates/deployment.yaml @@ -31,14 +31,14 @@ spec: release: {{ .Release.Name }} spec: initContainers: - - name: {{ include "common.name" . }}-readiness + - name: {{ include "common.name" . }}-job-completion image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" command: - - /root/ready.py + - /root/job_complete.py args: - - --container-name - - {{ .Values.mariadb.nameOverride }} + - --job-name + - {{ .Release.Name }}-portal-db-config env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-app/values.yaml b/kubernetes/portal/charts/portal-app/values.yaml index 44156351f4..ef925003b2 100644 --- a/kubernetes/portal/charts/portal-app/values.yaml +++ b/kubernetes/portal/charts/portal-app/values.yaml @@ -19,7 +19,7 @@ global: nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s - readinessImage: readiness-check:1.1.0 + readinessImage: readiness-check:1.1.1 loggingRepository: docker.elastic.co loggingImage: beats/filebeat:5.5.0 @@ -28,7 +28,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/portal-app:latest +image: onap/portal-app:2.1-STAGING-latest pullPolicy: Always # flag to enable debugging - application support required @@ -67,23 +67,23 @@ service: nodePort3: 14 mariadb: - nameOverride: portal-db - service: + chart: name: portal-db widget: - service: + chart: name: portal-widget - cassandra: - service: + chart: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 - zookeeper: - service: - name: portal-zk + chart: + name: portal-zookeeper +messageRouter: + chart: + name: message-router ingress: enabled: false diff --git a/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml b/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml new file mode 100644 index 0000000000..184728f8ad --- /dev/null +++ b/kubernetes/portal/charts/portal-cassandra/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size}} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml b/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml new file mode 100644 index 0000000000..e27c3311e9 --- /dev/null +++ b/kubernetes/portal/charts/portal-cassandra/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + name: {{ include "common.fullname" . }} + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/portal/charts/portal-cassandra/values.yaml b/kubernetes/portal/charts/portal-cassandra/values.yaml index 530fdfa6d9..f66b848274 100644 --- a/kubernetes/portal/charts/portal-cassandra/values.yaml +++ b/kubernetes/portal/charts/portal-cassandra/values.yaml @@ -50,6 +50,29 @@ readiness: initialDelaySeconds: 10 periodSeconds: 10 +## Persist data to a persitent volume +persistence: + enabled: true + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + volumeReclaimPolicy: Retain + + ## database data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteMany + size: 2Gi + mountPath: /dockerdata-nfs + mountSubPath: portal/cassandra/data + service: type: ClusterIP name: portal-cassandra diff --git a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/Apps_Users_OnBoarding_Script.sql b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/Apps_Users_OnBoarding_Script.sql deleted file mode 100644 index ff7093a203..0000000000 --- a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/Apps_Users_OnBoarding_Script.sql +++ /dev/null @@ -1,380 +0,0 @@ --- Loads database tables with details about applications accessible from Portal in ONAP -USE portal; - -SET FOREIGN_KEY_CHECKS=1; - --- Apps; note that the IDs are used below. - -INSERT INTO `fn_app` (`app_id`, `app_name`, `app_image_url`, `app_description`, `app_notes`, `app_url`, `app_alternate_url`, `app_rest_endpoint`, `ml_app_name`, `ml_app_admin_id`, `mots_id`, `app_password`, `open`, `enabled`, `thumbnail`, `app_username`, `ueb_key`, `ueb_secret`, `ueb_topic_name`, `app_type`,`auth_central`,`auth_namespace`) VALUES -(2, 'xDemo App', 'images/cache/portal-222865671_37476.png', NULL, NULL, 'http://portal.api.simpledemo.onap.org:8990/ONAPPORTALSDK/welcome.htm', NULL, 'http://portal.api.simpledemo.onap.org:8989/ONAPPORTALSDK/api/v2', '', '', NULL, '2VxipM8Z3SETg32m3Gp0FvKS6zZ2uCbCw46WDyK6T5E=', 'N', 'Y', NULL, 'Default', 'ueb_key', 'ueb_secret', 'ECOMP-PORTAL-OUTBOX', 1,'N',NULL), -(3, 'DMaaP Bus Ctrl', 'images/cache/portal944583064_80711.png', NULL, NULL, 'http://portal.api.simpledemo.onap.org:8989/ECOMPDBCAPP/dbc#/dmaap', NULL, 'http://portal.api.simpledemo.onap.org:8989/ECOMPDBCAPP/api/v2', '', '', NULL, 'okYTaDrhzibcbGVq5mjkVQ==', 'N', 'N', NULL, 'Default', 'ueb_key', 'ueb_secret', 'ECOMP-PORTAL-OUTBOX', 1,'N',NULL), -(4, 'SDC', 'images/cache/portal956868231_53879.png', NULL, NULL, 'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal', NULL, 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2', '', '', NULL, '78ot0W94rpB0o4FYzVoIOg==', 'N', 'Y', NULL, 'Default', 'ueb_key', 'ueb_secret', 'ECOMP-PORTAL-OUTBOX', 1,'N',NULL), -(5, 'Policy', 'images/cache/portal1470452815_67021.png', NULL, NULL, 'http://policy.api.simpledemo.onap.org:8443/onap/policy', NULL, 'http://policy.api.simpledemo.onap.org:8443/onap/api/v2', '', '', NULL, 'okYTaDrhzibcbGVq5mjkVQ==', 'N', 'Y', NULL, 'Default', 'ueb_key', 'ueb_secret', 'ECOMP-PORTAL-OUTBOX', 1,'N',NULL), -(6, 'Virtual Infrastructure Deployment', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://vid.api.simpledemo.onap.org:8080/vid/welcome.htm', NULL, 'http://vid.api.simpledemo.onap.org:8080/vid/api/v2', '', '', NULL, 'okYTaDrhzibcbGVq5mjkVQ==', 'N', 'Y', NULL, 'Default', '2Re7Pvdkgw5aeAUD', 'S31PrbOzGgL4hg4owgtx47Da', 'ECOMP-PORTAL-OUTBOX-90', 1,'N',NULL), -(7, 'A&AI UI', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://aai.api.simpledemo.onap.org:9517/services/aai/webapp/index.html#/viewInspect', NULL, 'http://aai.api.simpledemo.onap.org:9517/api/v2', '', '', NULL, 't1oqm6wCXrGUXUSL8mS7pQ==', 'N', 'Y', NULL, 'aaiui', 'ueb_key', 'ueb_secret', 'ECOMP-PORTAL-OUTBOX', 1,'N',NULL), -(8, 'CLI', 'images/cache/portal-345993588_92550.png', NULL, NULL, 'http://cli.api.simpledemo.onap.org:8080/', NULL, NULL, '', '', NULL, '', 'Y', 'Y', NULL, '', '', '', '', 2,'N',NULL); - --- insert ASDC users user id2-8 - -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (2,NULL,NULL,'Jimmy',NULL,'Hendrix',NULL,NULL,NULL,'admin@onap.org',NULL,NULL,NULL,'jh0003',NULL,'jh0003','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (3,NULL,NULL,'Carlos',NULL,'Santana',NULL,NULL,NULL,'designer@onap.org',NULL,NULL,NULL,'cs0008',NULL,'cs0008','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (4,NULL,NULL,'Joni',NULL,'Mitchell',NULL,NULL,NULL,'tester@onap.org',NULL,NULL,NULL,'jm0007',NULL,'jm0007','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (5,NULL,NULL,'Steve',NULL,'Regev',NULL,NULL,NULL,'ops@onap.org',NULL,NULL,NULL,'op0001',NULL,'op0001','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (6,NULL,NULL,'David',NULL,'Shadmi',NULL,NULL,NULL,'governor@onap.org',NULL,NULL,NULL,'gv0001',NULL,'gv0001','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (7,NULL,NULL,'Teddy',NULL,'Isashar',NULL,NULL,NULL,'pm1@onap.org',NULL,NULL,NULL,'pm0001',NULL,'pm0001','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (8,NULL,NULL,'Eden',NULL,'Rozin',NULL,NULL,NULL,'ps1@onap.org',NULL,NULL,NULL,'ps0001',NULL,'ps0001','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); - --- insert demo user to account admin role for all apps id2-7 - -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,999,null,2); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,999,null,3); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,999,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,999,null,5); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,999,null,6); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,999,null,7); - --- insert users id2-8 roles to SDC app - -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (2,999,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (3,16,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (4,16,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (5,16,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (6,16,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (7,16,null,4); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (8,16,null,4); - --- insert VID users id9-11 - -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (9,NULL,NULL,'vid1',NULL,'user',NULL,NULL,NULL,'vid1@onap.org',NULL,NULL,NULL,'vid1',NULL,'vid1','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (10,NULL,NULL,'vid2',NULL,'user',NULL,NULL,NULL,'vid2@onap.org',NULL,NULL,NULL,'vid2',NULL,'vid2','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (11,NULL,NULL,'vid3',NULL,'user',NULL,NULL,NULL,'vid3@onap.org',NULL,NULL,NULL,'vid3',NULL,'vid3','95LidzVz7nSpsTsRUrDNVA==','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); - --- insert users id9-11 roles to VID app - -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (9,16,null,6); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (10,16,null,6); -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (11,16,null,6); - --- insert AAI UI users id12 - -Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (12,NULL,NULL,'steve',NULL,'user',NULL,NULL,NULL,'steve@onap.org',NULL,NULL,NULL,'steve',NULL,'steve','95LidzVz7nSpsTsRUrDNVA==','2017-05-19 15:11:16','Y',NULL,'2017-05-19 21:00:00',1,'2017-05-19 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL); - --- insert users id9-11 roles to AAI UI app - -Insert into fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (12,16,null,7); - --- insert fn_roles for the on boarded apps -insert into fn_role values(1000,'System Administrator','Y',1,2,1); -- SDK from 999 to 1 -insert into fn_role values(1001,'Standard User','Y',1,2,16); -- SDK -insert into fn_role values(1002,'System Administrator','Y',1,3,1); -- DMaap from 999 to 1 -insert into fn_role values(1003,'Standard User','Y',1,3,16); -- DMaap -insert into fn_role values(1004,'ADMIN','Y',1,4,0); -- SDC from 999 to 1 -insert into fn_role values(1005,'TESTOR','Y',1,4,1); -- SDC -insert into fn_role values(1006,'System Administrator','Y',1,5,1); -- Policy from 999 to 1 -insert into fn_role values(1007,'Standard User','Y',1,5,16); -- Policy -insert into fn_role values(1008,'System Administrator','Y',1,6,1); -- VID from 999 to 1 -insert into fn_role values(1009,'Standard User','Y',1,6,16); -- VID - -insert into fn_role values(1011,'View','Y',1,7,1); -- AAI UI from 999 to 1 -insert into fn_role values(1012,'Standard User','Y',1,7,16); -- AAI UI - - -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (1,1000,NULL,2); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (1,1001,NULL,2); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (1,1002,NULL,3); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (1,1004,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (1,1006,NULL,5); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (1,1008,NULL,6); - -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (2,1004,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (3,1005,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (4,1005,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (5,1005,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (6,1005,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (7,1005,NULL,4); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (8,1005,NULL,4); - -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (9,999,NULL,1); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (9,1008,NULL,6); - -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (10,1008,NULL,6); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (10,1009,NULL,6); - -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (12,1011,NULL,7); -INSERT INTO `fn_user_role` (`user_id`,`role_id`,`priority`,`app_id`) VALUES (12,1012,NULL,7); - --- new 1610.2 --- Ignore errors if the application is not onboarded in this environment - -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%SDC%" and enabled = "Y"), - "SDC Team","sdc@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "Service Design and Creation (SDC)."); -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%Policy%"), - "Policy Team","policy@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "Policy."); -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%DMaaP Bus%"), - "DBC Team","portal@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "DBC."); -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%Virtual Infrastructure%"), - "VID Team","vid@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "Virtual Infrastructure Design."); -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%Demo%"), - "Portal SDK Team","portal@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "xDemo Application"); -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%AI UI%"), - "AAI UI Team","aaiui@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "AAI UI Application"); -INSERT IGNORE INTO `fn_app_contact_us` (app_id, contact_name, contact_email, url, active_yn, description) VALUES ( - (select min(app_id) from fn_app where app_name like "%CLI%"), - "CLI Team","onap-discuss@lists.onap.org","https://wiki.onap.org/display/DW/Approved+Projects",NULL, - "CLI Application"); --- end new 1610.2 - --- --- Data for table fn_menu_functional --- -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (175,1,'Manage',NULL,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (1,2,'Design',175,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (316,11,'Administration',1,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (2,8,'ECOMP Platform Management',175,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (3,5,'Technology Insertion',175,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (5,7,'Performance Management',175,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (6,6,'Technology Management',175,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (7,4,'Capacity Planning',175,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (8,3,'Operations Planning',175,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (11,1,'Product Design',1,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (12,2,'Resource/Service Design & Onboarding',1,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (13,3,'Orchestration (recipe/Process) Design',1,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (14,4,'Service Graph visualizer',1,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (15,5,'Distribution',1,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (16,6,'Testing',1,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (17,7,'Simulation',1,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (18,8,'Certification',1,'','N',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (19,9,'Policy Creation/Management',1,'http://policy.api.simpledemo.onap.org:8443/onap/policy','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (20,10,'Catalog Browser',1,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (24,5,'Create/Manage Policy',12,'http://policy.api.simpledemo.onap.org:8443/onap/policy','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (56,1,'Policy Engineering',8,'http://policy.api.simpledemo.onap.org:8443/onap/policy','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (115,1,'Test/Approve a Resource or Service',16,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/dashboard','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (130,1,'Favorites',175,'','y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (139,2,'Approve a Service for distribution',12,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/dashboard','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (142,3,'Create a License model',12,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/onboardVendor','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (145,1,'Distribute a Service',15,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/dashboard','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (148,1,'User Management / Category Management',316,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/adminDashboard','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (178,2,'Support',NULL,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (181,1,'Contact Us',178,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (184,2,'Get Access',178,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (301,1,'Create a Product',11,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/dashboard','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (304,2,'Create a Vendor Software Product',11,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/onboardVendor','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (307,1,'Manage a Resource/Service',20,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/catalog','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (310,2,'Manage a Product',20,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/catalog','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (313,3,'View a Resource/Service/Product',20,'http://sdc.api.simpledemo.onap.org:8181/sdc1/portal#/catalog','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (317,1,'Message Bus Management',6,'http://portal.api.simpledemo.onap.org:8989/ECOMPDBCAPP/dbc#/dmaap','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (318,1,'Infrastructure Provisioning',3,'','Y',NULL); -INSERT INTO `fn_menu_functional` (`menu_id`,`column_num`,`text`,`parent_menu_id`,`url`,`active_yn`,`image_src`) VALUES (319,1,'Infrastructure VNF Provisioning',318,'http://vid.api.simpledemo.onap.org:8080/vid/welcome.htm','Y',NULL); --- --- Data for table fn_menu_functional_ancestors --- -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (1,175,175,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (2,178,178,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (3,11,11,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (4,12,12,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (5,13,13,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (6,14,14,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (7,15,15,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (8,16,16,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (9,17,17,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (10,18,18,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (11,19,19,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (12,20,20,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (13,316,316,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (14,318,318,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (15,317,317,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (16,56,56,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (17,301,301,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (18,304,304,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (19,24,24,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (20,139,139,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (21,142,142,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (22,145,145,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (23,115,115,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (24,307,307,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (25,310,310,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (26,313,313,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (27,1,1,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (28,2,2,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (29,3,3,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (30,5,5,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (31,6,6,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (32,7,7,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (33,8,8,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (34,130,130,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (35,181,181,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (36,184,184,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (37,148,148,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (38,319,319,0); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (64,11,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (65,12,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (66,13,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (67,14,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (68,15,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (69,16,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (70,17,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (71,18,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (72,19,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (73,20,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (74,316,1,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (75,318,3,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (76,317,6,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (77,56,8,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (78,301,11,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (79,304,11,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (80,24,12,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (81,139,12,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (82,142,12,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (83,145,15,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (84,115,16,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (85,307,20,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (86,310,20,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (87,313,20,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (88,1,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (89,2,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (90,3,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (91,5,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (92,6,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (93,7,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (94,8,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (95,130,175,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (96,181,178,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (97,184,178,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (98,148,316,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (99,319,318,1); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (127,301,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (128,304,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (129,24,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (130,139,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (131,142,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (132,145,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (133,115,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (134,307,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (135,310,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (136,313,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (137,148,1,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (138,319,3,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (139,11,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (140,12,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (141,13,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (142,14,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (143,15,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (144,16,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (145,17,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (146,18,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (147,19,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (148,20,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (149,316,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (150,318,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (151,317,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (152,56,175,2); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (158,301,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (159,304,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (160,24,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (161,139,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (162,142,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (163,145,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (164,115,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (165,307,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (166,310,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (167,313,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (168,148,175,3); -INSERT INTO `fn_menu_functional_ancestors` (`id`,`menu_id`,`ancestor_menu_id`,`depth`) VALUES (169,319,175,3); - --- new 1610.2 which one? add-on 3rd script -insert IGNORE into fn_menu_functional_roles (menu_id, app_id, role_id) -( -select a.menu_id, b.app_id, b.role_id from -( -select a.menu_id from fn_menu_functional a where upper(text) like '%POLICY%' -) a, -( -select * from fn_role where app_id = (select app_id from fn_app where app_name = 'Policy') -) b -); - - -insert IGNORE into fn_menu_functional_roles (menu_id, app_id, role_id) -( -select a.menu_id, b.app_id, b.role_id from -( -select a.menu_id from fn_menu_functional a where url like '%sdc1%' -) a, -( -select * from fn_role where app_id = (select app_id from fn_app where app_name = 'SDC') -) b -); - -insert IGNORE into fn_menu_functional_roles (menu_id, app_id, role_id) -( -select a.menu_id, b.app_id, b.role_id from -( -select a.menu_id from fn_menu_functional a where url like '%vid%' -) a, -( -select * from fn_role where app_id = (select app_id from fn_app where app_name like 'Virtual%') -) b -); - -insert IGNORE into fn_menu_functional_roles (menu_id, app_id, role_id) -( -select a.menu_id, b.app_id, b.role_id from -( -select a.menu_id from fn_menu_functional a where url like '%DBC%' -) a, -( -select * from fn_role where app_id = (select app_id from fn_app where app_name = 'DMaaP Bus Ctrl') -) b -); - -insert IGNORE into fn_menu_functional_roles (menu_id, app_id, role_id) -( -select a.menu_id, b.app_id, b.role_id from -( -select a.menu_id from fn_menu_functional a where url like '%SDK%' -) a, -( -select * from fn_role where app_id = (select app_id from fn_app where app_name = 'xDemo App') -) b -); --- end new -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (6,'NEWS','http://about.att.com/innovationblog/next_att_labs','What\'s Next at AT&T Labs? AI Set to Revolutionize the Network',NULL,NULL,10); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (7,'NEWS','http://about.att.com/innovationblog/ecomp_code','Code, Community and Commitment - the 3 Cs of Open Source',NULL,NULL,20); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (8,'NEWS','http://about.att.com/story/orange_testing_att_open_source_ecomp_platform.html','Orange Testing AT&Ts Open Source ECOMP Platform for Building Software-Defined Network Capabilities',NULL,NULL,30); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (9,'NEWS', 'http://about.att.com/innovationblog/linux_foundation','Opening up ECOMP: Our Network Operating System for SDN',NULL,NULL,40); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (10,'EVENTS',NULL,'OpenECOMP Launches into Open Source',NULL,'2017-02-14',1); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (11,'IMPORTANTRESOURCES','http://about.att.com/content/dam/snrdocs/ecomp.pdf','ECOMP White Paper',NULL,NULL,1); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (12,'IMPORTANTRESOURCES','https://wiki.onap.org/','ONAP Wiki',NULL,NULL,2); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (13,'IMPORTANTRESOURCES','https://wiki.onap.org/display/DW/Portal','ONAP Wiki for Portal',NULL,NULL,3); -INSERT INTO `fn_common_widget_data` (`id`,`CATEGORY`,`HREF`,`TITLE`,`content`,`event_date`,`SORT_ORDER`) VALUES (14,'IMPORTANTRESOURCES','https://wiki.onap.org/display/DW/Development+Guides','ONAP User Guide',NULL,NULL,4); - --- app thumbnails - -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000001680000012C0806000000EE2C29AF0000200049444154785EEC9D099C5D6579FFBF67B9EBEC5B6626B364DFC91E12080142D87710595C0A5A37B455FBD75AB56A6D6BD55A6D6D6D6B6BAB15045111C50504917D95B0869090909DEC997DEE7AF6FFE77DCFBD333721C0850C3093BCE7C3903B73DF7BEE39BF73CEEF3CE7F7FE9EE7D1508B424021A01050088C4A04B451B9556AA314020A018580420045D0EA24500828041402A3140145D0A3F4C0A8CD5208280414028AA0D539A010500828044629028AA047E981519BA510500828041441AB734021A01050088C520414418FD203A3364B21A0105008288256E780424021A01018A50828821EA507466D96424021A0105004ADCE018580424021304A1150043D4A0F8CDA2C8580424021A0085A9D030A01858042609422A0087A941E18B5590A018580424011B43A0714020A0185C028454011F4283D306AB314020A0185802268750E280414020A81518A8022E8517A60D466290414020A0145D0EA1C500828041402A3140145D0A3F4C0A8CD5208280414028AA0D539A010500828044629028AA047E981519BA510500828041441AB734021A01050088C520414418FD203A3364B21A0105008288256E780424021A01018A50828821EA507466D96424021A0105004ADCE018580424021304A1150043D4A0F8CDA2C8580424021A0F5A6EC40C1A010500828041402A30F0145D0A3EF98A82D520828041402120145D0EA44500828041402A3140145D0A3F4C0A8CD5208280414028AA0D539A010500828044629028AA047E981519BA510500828041441AB734021A01050088C520414418FD203A3364B21A0105008288256E780424021A01018A50828821EA507466D96424021A0105004ADCE018580424021304A1150043D4A0F8CDA2C8580424021A0085A9D030A01858042609422A0087A941E18B5590A018580424011B43A0714020A0185C028454011F4283D306AB314020A0185802268750E280414020A81518A8022E8517A60D466290414020A0145D0EA1C500828041402A3140145D0A3F4C0A8CD5208280414028AA0D539A010500828044629028AA047E981519BA510500828041441AB734021A01050088C520414418FD203A3364B21A0105008288256E780424021A01018A5088C28416B1A68E27F6A510828041402C718024110100423BBD3234AD0B1884E32668CEC16AAB5290414020A81318080E5F8642D6F44B75411F488C2A956A61050081CAB0828823E568FBCDA6F85804260D423A0087AD41F22B5810A81A31701A1B18A45CD331DFE182B823E7ACF7DB5670A81518DC08E1D83DC7BEF4EB98DAB5675306142F5A8DEDEB763E31441BF1DA8ABEF54081CE308B8AECBAF7EF5221FFAF0831289EBAF3B830B2E988CAEEBC7383207EFBE2268753A280414026F3902B66D73D34D6B79FF9F3E2CBFFB673F3D8BCB2E9B8E6128C756E9C15004FD969F9AEA0B15020A817C3ECF0D373ECB873FFCB804E327379D21093A128928704A105004AD4E07858042E02D472097CBF1A31B9EE1DA6B9F90DF7DD34DA7F3CECB6628823EE44828827ECB4F4DF5850A01858024E81F3DC3B51F5504FD6A6783226875AD280414026F39028AA0CB835C11747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB035311747938A9510A0185C00822A008BA3C3015419787931AA51050088C20028AA0CB0353117479388DECA8C027E8DB4490EB26705290EB016B407E879FD9034E06341D2D568B166F18FEEEAA7630A2F26F5A450B5A55C7C86E975A9B42E02D4240117479402B822E0FA7231BE5D9787B1F23E8D900D97DF87D9B09522F110822F62D70B2E0E6E57704760A7C1BD0C04CA09989E1EF8ED5806EA0991510AD444B8C43AB6845AB9B8ADEB400BDE93888541DD9B6AA4F2B04DE020414419707B222E8F2702A6B54E064F1773D10FEEC790CDC4C48BA411046C86E163C9BC0CD41E095B5CE571DA4E961442D483C528516A900CD90DC8E66A25577A2371F8F31E522B4FA1947FE7D6A0D0A81114240117479402A822E0FA7571D153869FCDD0FE33CF8391919E33BE0BB829A4760ED47B00A41E0BA8956D18631F14C8C1957A2B79E1092B85A14026F23028AA0CB035F11747938958C0A0A32842789D87BF116DCD55F23103AF2DB4DC8AFB92F1A5A653BD1737F84563F538ED68CA8945284E67D444BE01FF93A8E6803D487C712028AA0CB3B5A8AA0CBC349926F90EF87D40EECDF7F00BF677DE1936F73945CF6F6970E141A48B8E813CE20B2E43352C7D6E28D523279DD8BEFE1F73C8F5E33456AE36A5108BC16028AA05F0BA1F07D45D065E024A2E3A0E779BCADB7E36DFC0941B6AB8C4F8D9D21C22DA2B79F823EE97CCC199783997C5D1BEFEF7F1AE7912F1039E9ABE8CD0BC3094EB528045E050145D0E59D1E8AA05F15A780207B006FFD0DB8CFFF1FC1E08E9199DC2BEFD8BCF5A38C3891657F8DDEB112BD711E98F1D7DE063787F3E89771D7FC37D10B6FC6987096923A5E1BB5637E8422E8F24E0145D087C3C9B371D77E9F6060AB24687FCF2304E9DDE5213AD6471931F4A6F9D2B6A7554FC098740E5AFDAC9793AE67E1EF79146FCB6FF05EBA97A06F23D1F36EC2987AF13137095914B90E7A6E38EC1FC7FAC93172DBAF08BA3C2C15411F062777C34F711FF834415E4CFC1DAB8B06D12AF471F331A65F8131ED32B4787D0846E0E16DBF0BF7B12FE377AF1B7AAA889EF13D8C59EF91CE91A37E11D6C921460E5F084E1E7E558A80927C0E3D1F144197778528822EC129187C09F7C97FC2DB7A1B41665F79081EEDA3444663BC1EF3946F624EBB2C9C44B453E46F5A4630B84D98BC8710889EFE5F18B3FFE4D8216841C99A349D176E5CE2F7024D07E26FC5F78FF693E4F5EF9F22E8F23053045DC0C9DBF63B9C873E2F650DE96356CBC108442A3067BE1BF384BF913730E79E8FBDCC561859F135CC851F073D72D4A327EE4B828A050F0B2A9626456935D408D0C2FB56E13D153FBFFC7450045DDE25726C13B4A88931B00DE7F1AFE26DFA257861BAB55A5E0D8122DDBCDC5E689EF02569D97B4356BD510CBACC042D2C322E16241C804B40CE87BC1BE0BA015EE0636A1A31D3A0361206D732BE9651B65A4A1150045DDEF970EC12B4A88FB1EB01DCC7BF8EBFF7D1F2D052A35E150173E127899CF4F760C4DE52A402E151470BC970580816A5A70AF2C3213715C9B705F61CDA521112879244715D22440ED71D126DA005E41CC8783EBD399FFD298BFDFD167927C0F1021CDF470B7C6246C0B82A9386AA38CDD5719A92260953470FD732AC5617C3EFB714ADD1F1658AA0CB3B0EC72C41FBDD6BB17F7DC9B1E3CE28EF7C38A251C6DC0F113DE59BE5D9F38EE89B0EF970416E10EC2CA25D3D64D39249BB428EA7E064190D0B223E38DD5D727620A859BC1B927DB804782252767C7AF32E2F7459F4E61CB2B64822D0B0020DBFA0377B22B9544CA0FA2E9A9BC7C4A73AA633BBA592992D55D4554431C4BAB5A1DB49E12B8E3DAD5A11747917C03147D041BE177FF3ADD27DE0AEF96E7928A951652160CC7C37D1D3FF334C1D7FCB96909D8BD41A68BE50802110AAB02E63683B08C87922E2CD3360B9641D485B3EAE0F9E1F485295E42C43E580A20745C7A33611A33259417FCEE140DAA1D7127F15045E903964E0ED83EFE37B3E7E10E0061EBEE71278E25F8FA4EED25A1B637C759C8698C6FC094DE1DCA2F84EF1427EEFB1258328822EEF0239A6085A249AB8CFFC3BEEDAFF05CF2A0F2135AA6C048CC917C83A1FAF3713B1EC2F78D9C030622ECD5C143C27485944B53DB6C78BBD3976A65C76A61D3674E5E8CA7BA41D8D8CE5E00BDD5844BB9E85E179E88120581F538811814F7D4594396DCDB4D7D71574643FBC19F822AAF62531FB5E611B84262D09DAC317A9EFAE8D2F483BF0B17D5FBE879527A9D9BC7FC54C3AC755A10782EAF5B0F6F71B07614C7E5211747987ED982268FBDE3FC37BE12610E53ED532E2081813CF217AFE4D6F3A418773768589BB21D942BCD0480501BB52369BBBD33CD365F14C9747BF15907675D29E81E30798BE4BA59F2111D844F048682E31CDC790D28329A58CEACA1A6674B631AE224E4484D6224A0E021128E307A1941112B420EA50BF766420ED11F81EAEEB84442DA3690FCFF37005613B2E932BE0B485139935BE16B320CF8848FA58226945D0E55D7EC70C418B7A11F61DEF0D6D746A795310D05B9711BBF47720EA528FC47270703CB4462929C8B8599072381198436767D6E5B60D0758D765B32FEDD2E3C5496B7149A49AEF92D0032A758F3AC365BC99A7427388E113D73C0C215CE8069617A1DFAC605C731B159118BA274AC70A32464A1BC2A9218857B2B4F89B27DE13441C482216E42C48DBF15C193D8BD79EE7E2FA01AEA7A189D7F92C13EB34CE5B3A9599CDF568F8324297D1F431B228822EEF401FF5041DA477491B9DBFF9370456FFDB5B4BC38862B42E43EB380D73F6D5A0BF81CA71C5E3EAA4F15EBA077FDF9304FB1EC7EFDFF2B6FBB7F5A6B9C42EBF0F22475ED16EC83921E977386F5A44AB9A9888D34DB27EC0833B06F9ED867EF63B06B66630E847707C0DDFB1A88AF8CCA88FD35913A53E1145CFF4E1A57AF173299C5C56BA2E021101FB1E8316F47911DAA6CEA2A65AB4190B35E6A0206548995946D0A15EED89509A90A0FDC09551B47C2DA2651129FB829885DC11FE1BFEF8F8AE8BE3DA684E8E981E70F6FC0ECE5B1436530865E863238E5604AD085A12B2FBE43FE33EF39DB74773D60D6939D31BE6622EFA24C6A4730B0E8791BE0803BC6D77E2BF7833EE8E3F803D0822F27B8BEB536B15E3895DFD2C5AB4BABCB3EF554785141D52B398F813C4A8E36B06BE1FB07130CBDD9B7B79648FC77EBF02CF088DC7819DA54273195F6932735C2553EBE218BE8D97CB92EEDA4F3E3D8863E5C9E52D5CD796137929CB67902A5A672DA4A1A989C0B6C3893FA95C08520E658CE26BB945051216842D74EC21822E21E4E218296F8888DA15DAB48B23E63F1C3171E971D2F446DE7FCA5C12868E9CE01CAACB3DD2E7C8081C92115C8522E8F2C03C7A2368CF92C927F6FDFF0F44E4FC562C661C2DD1282348D17E4A9F7016C6940BD11B8E7B8B92370A74B66F35CE837F45201BD10690EF0FEB8AC82E2F6FDEA225C711BBE6F91121681929173655389185D52D6B7B64ED803BB70FF0D8CE4176E60D5C2389661818BA89A1F94CACF0985897A4A53A4652F3D06C1BD7B2B133830C76EF259F4D63DB16996C56EAC4AEEF918D34D230653EE3C6B586BAB2EFA1090943C4CF7E48CC45722E9275F15F215F841383C311B378EDBAEE10897BAE3B1C5D7B1EB663E10A95C473195F1DE1B2A5535838B995A8A117DC1D85F4F1A398A3154197771D1E9D042D1E81B7FC264CDD1EDC5E1E1247384A448DA2A09031F783E8CD8B0A6B7B3BAFB0822C200867FB9DB8CF5F87DFBD8620B52B9CF07A9396F8B5FB6437F2235D849C204D7281262D725BFA73DCBFB597A7F6E5D81B6B0E73AC038D58E0D2561130B93E416B65942ACD1EF2310BF9C2C967C9A57AC9F60F30D0DF8D95CB60E7F3643359529E4EC6A862CAFC65348FEF905639690191138021297B624250FCBDF8BBD09905714BF942481D05D78688A40F913464042DA26741D04592F67D6C4744D10E81EBE0E472B4D5E87CF0BC1399DDD91A4E488682C7512D7728822EEF0A392A09DA3FF02CF69DD7C812986FF6A245ABD01AE76174ACC498FFD130821E858B683AE0EFBA4F4A21A2E98098F87A33969122683909878FA7C1133BFBB9FDC51E36E5A2E48C04B611C3F05CA2F84CAE3139AE394175C44017A41E88A70431D916E0B90EB9C13E327D7DE407FB1918ECC1CEE4B0F27906B2797AA964DCD4794C993E8398190953B8A52B4310B2F837F4498BDF872368A1390BDD3AD4995D394958785D42C245B22E12B4EB384304EED80EAE277E5C1CDBC2B0D35CBAFC382E5BB180642C8226273EC53EBC9D37F837E3EC185EA722E8F2F03D2A09DAFACDA5F8DBEE280F812319251EAB279D87B9F4F3E80DB3DFF214E737B4E9F620CE93DFC2DF7E17229B7244BA8B976C48FCFD1B651DE9D7B71C5CA85364FB0951C30D74B6F5E6F8C5865E9E1ED071A2893043D0F5A8323CDA6B624CA98FD310054338354A547749AE769E74CF7ED27DBDE4D2830C0EF460A72DAC7C96DDB98044DB2CE62C3A9E8A8A4A49CCC2972CA366797318D6990F92388250AE2812F6101117648DD2285A4E18BAA1E54E46D18508DB16B28BE7E2899E968E8D9549735C5B1D9FB8FC4C263454A369E2E629321D1541BFBEF3E8E81B7DD411B4A8B466DF76E588134FE9A1D79B9760CCBC0AADA205AD6E067AE3DC317566B8EB7E88BBFA1B6107F211963B62EF79E2F5E321095952A2A4249164B2664F3F4FEF49B1C38EB0336F92F185633920E6DBCC1F5F43B5E15117D3881B05122BA64F0F293B3EF9CC207D7B77911DE8259B4E3338D0473E9D23E3B8C4A79F48E794695455540D4D060AC786FCEF9049C1E1DF45C4EC1C44CEAF48D04E48C87282D00DA3E7A22E6DD9B69C2CF43D1BC7B1C85BC2F2E771ED25A772CEE25918BA70AA88041645D063EAC27A1336F6A822E820B513EBB7EF20E85AFB264035BCCAF8D56BD0AA278E8D88F93048E47F309920BDE74DC12876E9EDE89DA7BFBE754B3B9B706978B24646D685AFDFF322FBFC24D9682522B74F44B871CD62725D8C79E31232EB2F8CB443395A96D728D4D090E288EB4A79A36BD776B283BD58990C03FD29329914079C08275F752DF18889CCF716E9DEC5B24842572E44C862278A041C46D182A08563637842B07432B0F85A4C1C7A43045DF041BB6E18450B0DDAB2A4FE2C2418DBB1C9BB0E5A3ECDFBCE5ACA9F9C750211532790553B8EDE45491CE51DDBA387A07D07E7EE8FE26EFCE99BE656D02295444EFBB7B06BC8185DDC47BF8CF3C437DEB4AD8F5DF44BF449E7BDAEF58799819E4CD6C8A273DF867DDCB2C3213013385A4C929A48919ED118A7B3364195970BED76D2922688BA506DAEF0AD527E701D327DDD74EFDC4636DD4F2E9B61A027C5817496C15813175E750DBEE30C45CF82A48B245CF4380F5BE9428D59BC1F46D0E1EF87BA358674E6E2C4E050041D927351E6102E8EC0B1E5F7DBAE70A638C434978F5F761A172F9D8121DC1C52E278854C9DD785EEE81CAC08BABCE3727410B4886CD65D8FFBE8970872DDE5EDF9EB19A519E8F5332439EBE34F1A7B4D51858CE1E5711EFC2C42DE1879BBDD70E9CED885BF40177EEFD27A70C5A240AF8079B1DEB2706EDFFDC25EEED8D045AABE1D373024D655584C6F8CD35E1D23E2B918854A756175A3E145FCE6E9A07B019E6D91EAE9A27BD736B2A901B2B90CFDBD29B6A55C262E5AC9FCB9B343392308B30385AD4ED4D8184A4639C8EB3C4CC842372E7A9E8B12C610593BCE505AB7533A29E83838452747E0625B7902DB9263C5053868392493493E7BCD799C3FBD49EC32BA22E8D773851EB5638F0A829605901EFF1A81D537F2074A74BA3EF59B98733F3846276D02DCA7BE8DFBC43F859994872EA27F60690714DD402BCD70946C2192404AD29045DB2B59AE332448BD6A025AB245BED666BF07BDE37499622252988533A248D6438FEC850247A2BEB2AC4317183CB3B397DFACEF62AFD98863C6F00257AE43A466CF6E4AD092142E8D32EC81528AF064324AAAFB00DDBBB64B592397C9B2617F9696E356B060F102022B47E08B6CC1128F7321392524DC421D8D82BFB9384E44C132922EF89CC3ECC1A29D2ED49A053917DF77E524A1156ACE52F670C8590E9A97C77534F6EFCCB2DFAB22DFDA8EE70DF0FCD72E624A4DAC509D4F24AE1C5C1675E44FF0B7678D2A822E0FF7A380A0039C073E83FBEC7F94B7C7AF6754A40263F285984B3F875E3FF3F57C72F48C75F3B84FFF2BDE965F0F6F53AC6EE8B5B005EA95E387DF8BD74265C7F0FBD14AB48A5634235E1410A076329815720EAB58B728CC5216948CF40ECB1F517FA2F023A95546D282EB75C4DC5E54D788E8A1FDF8862776F374DAC48D26080283C07749EA1E136AA2B45747881D142D9746CEA54A6DB10F958F9DCF91EADA4FF7EEED64B329B2D93CBBEC2A169E722E15C9B8D4808BA45B9A2D38246B14ABD215A48CE29821CD596607869380421F179F731C7B6832B0286738628C63E18BF7A4CCE160E75D02CBA6F7A51EF6AEDF47CEAC21367F01D9C66AFEF2CC4EFEF2AC9924A2A0FB1ABA2C6E7DF42D8AA0CB3BA6639EA0835C9724684F68CF23B908729E7E854CD11EB3E42CF070F304B903F2DFE2A2D54D7B0DA45E9D14427A0CFF2F26E67C7C59252EEB06A41D9F7D595766FC651C9F8CE591737DDCC2849EA60798862EB3E66A22260D0903CBB1B977A7CD3EDB9451B24714337098506DD2561B23AEB98542FBC3B98507EF4089C12E0CCAB1F35952DDFBE9DDBD834C2E454A54D86F5DC09459C785E42CEF188592A142DA2868CCA5045DEA6F2E92B9888E4B53B8858D2E4C5A0909BA48E0C24A17A67887041D5AED7C3C274FC4F278E9B92DECDFB8172DA3E3E9519C8E0ECC8573A8AC36F8CA550BB962712771B123C2CC71144E172A822E8FACC6344107D90378EBAEC35DFBFDD03236528B192772D25731269F1FBA35D4328C80205AADD0F6296BD39B73E9B321E56A64DC80941DD093B125613B5E6892F0440D8D02A9CB24104DD46DD33074D1BF4F7424F118744D9C20228958C365526D84D64484B819BA3B6481FC728F83F86E2B47BAFB00BD7B7791CE66D9D59F63E2E255D4D7D687645CC80E0C35E7E1449450BE10863EF1B790788BA45B2A6DC8D4EE82C75992B41827A40DE1E010E9DCD2EB2CA40F1BCFB6B11D07CD7798D652CBC9D327B167D376BCACCFB34FEDE00F773D8F1B4DE2B58DC35FBA9089ED493E7CEA24DEB9A08371C9E106BC47536F4345D0E59DCC6397A0453AF7F6BB70EEF93382CCC85AC6F496E3895DF95079081E6DA3645FBE304216C9D6C51E7FA5D5E5065C8FD53B07D995121D4620E31B7242CF2F481C82600D024C4DC7D075F442417A41B122CF2F10937C22CAF57DF2521E10A590345C4D481B3ED59ACDA2B64A0C1F7491B42199B91825CB02D00583434995BBE1E70349AE5E3E4BBAA797BEFD7BE94B6779B1DB62E189A7529D88E3A1CB0A766252505AF264BAB6D88ED04A17DAECFC421AF7C13536A47D4E96112D789CA5AE2C3CCD3E8E889285B75910B72DD629A2680BCF72F13219668EAFE53DE7AF64765B3DA669629A70FD0FEEE6CB7FFD1320229BD006679F46B6BD9D96448EBF3B6F16EF3E7E62D815B168F72E3CB78CF5D34E1174794770CC12B494361EF922DEFA1F85CD3E4768D192CDB2E8BC746B1C934BB14DAAC0542F31196BB283F54B83393675A559DF07592D2A2701A503423C8D8B76513AD4C4848461C81FD1E5DA1C9A272C8823225B0F64946DB9E2C7A7CFF2C8D86194D95E5B495B8588B143CD5A9775374A3BC28A770A5AC641253A430D5C4817BE20E8BE3EFABBF6B3BB37C39E7C8C79F317509988CA9B81E88452ACAFE1FBC58247226F6798984B4B850EC91A8290658D8D83AD73E27D1125FB2285DBF5B12C4F5650F4FC1CBAE5B368C2781A2339CE5E71022DCD09224682542AC3BF7CF397FCE8BA87087413D3D7E8EB68A1F2E453B0123E57CDA9E2BB572F2FECAB48E229765E19FBBAB422E8F2C865CC12B4DFF52CD62D6785A535476A31A244CFBD514A1B8736151DA9AF18BDEB292ACBC566AB855ED9F2CF3A5D399B67F7A7D8D827122B4CD2A688443574DF23AA7924220615D11815A6415264F50D3546152E8D029916495570A3E45CAD10750B7FB14ED676A503A2B62A4E2408CBA58AD653A2C6864CF12E74DC96938845538988CE75D188B564C63270F16D8B7C7F2FFDDD5DBCB0378D956C64D6B4A952FB16DB5DACB921562DEA39CB4E2805B943481A6219AEE35C8CB043194390BB4C462990743199C595B246585AD4B184734344E52EDD2F6CE5FCC57338616127B95496D3CF9A876926D8B1753F5FFADC8D3CF2E84B843DBF0306741B6DFE71C416CF63D9D41AAEFF9345D4C6C4934C98C473B4E8D18AA0CB63823149D0819DC2FAD10282CCEEF2F6B28C51A22468F4829FA1D54E2963F4D1386428264597C5E803990CD263793CBB67807503016922328A132363814D753442752C414C4E64899E7E61A0EB16026FBDE08A93997E251284142C869414591B0E3F083DC4B82EBAEF080B88ACC521A5132326234C0C83401335A1CD90D865C966596EAEB0F6403658D1752F8CDAAD0C07F6EE63F5F61E264E9D496763B57487084D1C5F4CF6850F5FC311F470F2496979D183B205EDD04A5724E7A25B43DAEB44753A173C51903F9726D3956560FB368C9E1C99BE34FFF0CD0FD37D600FEF7A9748E4091D1A8F3CBC817FFCEA4FD9F8C25E342D82E7EB58BA8F3F7D0A0D272EE2FCA575FCD5B9F3185F119337BDA3A53E8722E8F238646C12B4D54FFEBF43DFED482DD133FE0B63D67B0FF6048FD4CAC7D47AC20ED50E3A2F0D5A3C2BEA616475F2BA298BC9EB1E183A3455992422427E084B82CAC7EF21A9342C052A5D120769A701811ECA2132AA16516BB16EB2F005CB4ED8521426E71BE8461C5DD8EECC381866988E2D3E26B2088BB2967487143569999018B6B8127BE0FBF41CE865DDCEBD4C9E3C85A6AA78E8B8D07402D1D43510242F9253C2087A285BB0B04DC58494616B5D18410F47D607CB1C395754A60BF7899C4D76C77E1A4C93DE3D7DF4F7F5F1F75FFD30BB766EE4F2779E8B666852833ED095E56B7FF7536EFBCD13327BD04378A05DAC649CE8B2C54C387E027F73E12CCE9AD1425411F498BA92466263C72641A7F720EA498CD862C6899EF793B0E3C9B1BA14345E99D517681CC839FC7E730F075C13DF48485434DF23AE05542522544544342DDC0EF29D30242E4E2DFAA1FE20125104414B322E261BCA529D61EB28D9F95A140EF25C701DA947677D0D2B8044552391681CCD8884845A1281CBE8B650BD2E944FC2C85DC6E28198001465472D8240978D65D2C2DA6646658358D9AE4A4A1CA2EBB6B81784DB22BAA2941274A9DC21FCCBC59E83A254E870C5BA509209A3690FD7B1713C1BCD72493DBF9B591DEDC47483679F59CBA92B8EE3A413A793C90EB2EACC2572F2547CFF9A67B6F1CDAFDFC2534FEC243084D061E2EB2EA2E7BC376306D5A72EE45DC78FE32F56CD05F8E9980000200049444154A035190DA59CB12F41A322E8F28866EC11B4C8127BFC1F711FFF4A797BF81AA3B4783DFAC4B3892CFD3C5ADDF41159E7985C492112CD3A3E7B07F36CCBF8ACED71F08CA8E45E91541237022A2286AC2057CC1B09FB9E849379B2EBF590F61CF276283F87EE084D4CAEC91467D1FE29D470450A74266FA1099B991E27EF413499A4B2AAA630F77B88BDAE90F957ECB83224CC14826841B8A1C02D32FEC4A45F78F310FD0085BC216F0E224897DEE502F10E15DD0F2D7787764329FDDD91FEE642012441CCD25A27925544F289456D328696CEB26BF5666A9249E90469AC4F72E925A7626879DA3B5A19DF568BEB6ADC73CFB3FCFC670FB2E6995D64D3BED4D50D7103110A8C48F4696B2376C6494C6C31F9F8E993B970763B8948A1EBCA18676945D0E5B1C49823E860701BF91F2D94B5258E78D13459CF3972F237D06AA71EF1EAC6E60A42660B894E63F5CE3E9EE9CACBC2F89A1E911367E2C1BB361125618849AA70E2AEAC4508C2821045042AAAB78908339F95C48CE7627BB03FEB9173A0B1AD938A9AFAC2649F30C2BDBCC3753159446E6D8971A758CB43BE2FC3E2F0CDC3950D3D2821454A1B0737782D7A9D8B29DC323A2E494E2926A014A366DB11892A3681936362758CE5D3A6A00FA6184CE564D1A38898344D98B4B737D1DED68C6906446326B93C7CEF7BB773E30D0F92C91452DE8550248F45B8EF7E5515C6F22598131A58DC11E5DFAE58425B9DA8892DACE4633B8C56045DD615246BB5648523680417AD57642B8CD0128BE82463C3F508DC67FF13E7814F8FC8DA450F3D73D917308FFB008849A86364199E6A2AB82B0AD1A7E5C3CF9FD94F774444B326119953E25111D1A88A849639C97D8714292AB1E90E491B61990DD1C5DAC6CDE724397B82E8EC9C7CB477759DAEAC478F15A1B9B595EA9A5AA9718B6E2261958F83097A989CC346AE434B21422F9276D875FBF0CD5E8B641C16E50F5B5589649430221E766A94164112BE67910558B4DC494943C8197E2133D0168E911CA66F71F1E2494C6B692016C0E0604E626598060DF595D4D6C6D1759D4824413C5E496068AC5EBD99AFFCED4F79716377F81C229374C2671291DAE3440CFC59D3491E3F8F9A44C0CF3FBC94E9CD95614B2F45D0C7C4D53AA6085AF4D3B36E3D8FA0EFC5233E385AAC0663C19F61CEFFD8A86D5375C43BF90A2B18266831ED1652C2BE812CCFEDE9678B5D8DA78B093F5F3A2112D2D32CD22884AE1B6AC16191A38397E1782E407444153286487116197D5E3E272500291F68263BBB53EC1DB4E998328DFABA3AE2B1F8505D8FA2C9EFD06A78A551B2F8E6E2EF52832E1072694D8DD22248A58E8C62042D09B91041BFAC2A5D21F124CC142C46D0218187198285FD131DBAD3194C2B4F1D0133C7D572C292195455E8C4A249A2B118A6283AA2F998119DAE9E1CB7FCE27EB66EEDA6BEBE86CD5BBAD8B6653FAE250A2709D8C4646B44EE8F30037A41805D5B4DCD49228A6EE53FAE9ECF19936B0BE246F118BC3C921E0BE4AD22E8F2AEEE3145D0EEFA1B71EEFBF383EA4A94B79B2F1FA5D5CF2076E9EFD02ADBDEE82AC6ECE742822E265F6BA42D8F3F6ED9C7D69C8615AB938FD9A2FD5345CC2026324F8417B9CCB929E1D7F5F2966C3725C9D9B664F42C4A9C0AC259BFCF626B5796798B16D0D9DE84212ACA8571B7DC2A59FD4EBA42866F0282188BCB417246B1F3F7219DB75FAD0892889C65328ACC16149383C3D1F310514B1B5DF8775943A35846D4F711DD508487DAF65C74C72261E789BB79E6774C62EFAEAD9C71F2121AABE338A64977574E584E68195F41736B1D4F3CB19D4F7FFA7BA4D28284435D7EF98953B9E4A21359BB660BB7DEFA0039CB0C495A3CBDF82E9609C90573A858BA808F9DD5C9B527761211369AF02E75F0E469E15146A6B31464ABD14AD68AA0CBA38F3145D0F61D57E36DFAC588B4B3D29BE6117BF7EAF2503A2A4785F634E16858B76B802777A7C957544A8FB1889E45C45C1B8FBD42058C62E28900264C139471B8AC71E162A70764B94F41CE72324E94E8F46D2C3DCA6F9EDDC3CA534FA6655C3D81E34B57B5F8FF2B2D879336A414209256640DE7E18EDB8746D087D6D810A42B2606C537CAB2A1E277D925254CDB2E56A62BED1F28AC7FC29D1188F7456ABA206B57E8E73ECD519DD3674C20EE7BF41CE867DAD4F154C4C57A3D1E7D7A3FFFF3BDDFC8CE2A9FFC8BCB58B56A11BFBFF349BEFDED5F93F54C343F82E66579EFBB8EE7739FB99275EB77F2B9CFFF2FDB76E540BCEF69F86E8A5CE0109D3A9571AB4E65C5C25AFEF2C27934579A4481D05B134A49D20EAE891F0DA320FBC80AB1D24613DEEE0AC9FBA3E26C56045DDE611833041D0CEEC0FAD58523226FC82481D665C4AEB8BF3C948ED25182D0BAD2791ED9D2CB012F8A174F8471ACE8986DE854C5A2AF52A26838C295AAA92067619B732CD96A4AE8CDD239E1D9B88E4B2A30D9D29367E2ACB98C1F57876B87198622320F55D7972FA5E45C94354AF56741CEF2F7C2A460D1B75C2A6FBCAC4A5DC15227C958A6758791F210418B424BC2FA57F8BBCC0A141AB46C572592516C3C51CFD9B1995C5341936FF0F8236BC8D80133A78CE3E20B961389EA7CFE0BB7B271F36E342360C1DC164E5CDC29E645B9F781E7D979004CDD2011B178F7554B79EFBB4F2195F2F9D6B77EC1A3AB77E3D92EB1288C1F5F41B2A282A7B67553BFE2541293C6D1520BB515D05C9564666B3D6D0D5574D625A88FE8529212924A65DC90FF1613C38B754CC4113BDCE4EBDB717A2B822E0FF53143D061D1F96F1CBEE87C79FB3A3C4AF89E57FE1BC69C6B5EEF27C7F4F862E4296B55482B9AC6B3BBFB796C9F875E511146589E4D4483642C8A71D8C48850B32EC664923885DE6C0BBD398B9BCBE0E6B272124D44CF8EA7B1A13BC70B072C8E5F348F299DE3110FF122CA139B5070C1BD0CD7C3C91AA5242DFB1116A48D22098BF75F4EC8C54A75C35EE7522943F89BE5EF25353686BBA18814F490A045FF40E1950E2C9FD481019A8D80E3A775F2C4939BC858018F3CBA86CB2F5949A66F0F7FF197D7F0B14F7C8F0D9BBAD0CD084BE78DE7C37F72226D2D06916805DFBFEE3E3A3ADA9935BD93CEF62AAA2A7574DD249509B8E79E27E9EDEBE18A2B2F62F2E426366DDECB97BE72231B064C2A16CD837852B6D615C9E862A2559471B5BD3C7AE0501D37185F6370F58A49CC6F6F607C659CEA9849B450C44AC847A58E72F9FCF3364D362A822E8F4AC60C418BAA75EE0B37806797B767AF324AABEA2476E583B22BF7B1B98436B5BC1BF0D4BE1CEBFA020253D49F0B307D979829B46761A913DAEFCBA3DBE149C6F0F1DAB32C1C41CC96F81996360449BFD4EFF2E4DE2C53A64D67C9AC293241239C637C659B5829391749B9F45F91065EAA3317A50D31A6D8F0B57432301C2B087A385296A45C283B2A12518A2543A537BB245B50C81F610DE8D0BD91EBCAF3E2531B684BC225672F65CDBAED38BEC9D66D07386E7A070D35011FFDD8152C3FEDB3387E42660C365519BCEFAAE59C7C621B11C3438FD5108B4464612943F3D145828A261C1E11A2F14AE992314D8D6CDEE697BF7E9A7FFBF7DB493911F4A67A3022B2E1811635312A931889387A55257E65054E24826DFA541B1653C655B268623D67CE6EE5F8CE3A92C23F5DB0F14979E835DA90BDD9D78522E8F2101E33046DDF7639DE96DF96B757AF31CA987D0DD133BF3722EB1AB32B09020EA42D1EDD99A1CB8FE1EB614C1C0D7CD9ED5AD46A2E54B57FD92E16095A5AC37C17279BC14EA7F0EC9C94396C613D135A74E0B3F6804B2A5EC7890B6753138D86135B929B43DDF9658EBD42C1A262647790A451485211045D1A4D17ED73C508BAF87B314B3024F0E1087AA87E46C1032DE50B37246F31AE94A045228D903564228AABF1FCC3EBE9DEDACDE23993B8E8ECE3D0FC1C1B37EDC5334C2A2301975EBC9C5CCEE6437FFE63FAD38EB4D9E164B8F0AC595CFDAEE554C504C746314C9388114117F545D089464D62A2B398A1631886ACD3B16B6F3FFFF8AD5F71F71FD66106313C212A17F465D1D6C0D17DCC680C3D99C4A8AAC4A84A12D4D762B677E0450D0C3360767B928B17B470D2C446A6B55493940D69DF7E0FB522E8F298E3D823683D22B567BD797179081D45A364E05A48BB1607FEE91D3DACEB75D12AAAF17571F107C4651B2AE1B31DF6481F0A812C312AB3F4449FBD3C766A1027932AF8853D1C3B2F33025FECB6C946AA5930FF38EAAA2A0BC5F88B6B3B4C645E24E0121BDDC1B24668AF9313838531A5DEE6A2065D8CA4C3BE826171FE506B0EAD7EA13BA390A4228A3249096398A045D76D51DF597640112E0E3B4B65D4A47B571FABEFDB4A6005B434C4387BE5143A9A1368668CDEC114B9748E8A8A2A5E7CF180D4944D532797B769AC8B73F2099D1C376B3C095323E3983CFDF47A6CCBA3B373A26C58904A0D62E811AAAA222C5F3E9FCAA4CE60DAE2B1D59BB9EBCEA7E93990A6B232414F6F8A679EDAC8A489AD2C5C3C8DFBEF7F8E7DFBFA993C651CA7AC9A8FA399DC72CF0BE8C90A2C714C1BAA699F3591899D2D34D646397F7A152B66B7D19810425368510CDB29840A7538A1F8E653B822E8F288E5982368BD712EB1773F3EF63A7397773C5F635468ED12015457C6E5EEE776D16F561215FA73A11E7ED21417AE68562A29F07039290482C0A53BC3C1CDA5B15329F9AFA843E1F83ABE9D664B46E3B16D3916CD9DC9F2E3A6C9758A08503BB8B4DDD0F61E6E42B0F8A620D9904386C9B9288314258DA2CC51FA7B585F232C235A4ACAA58E0D59856EA8C9AB983874B16D0BD713FA738067E54906164B674EA4677737B7FE622DA9816E2EBB7019EFBC7839BD5DBD3CB7712777DEF3047D030EFBBA2DE29128FFF0E9F3A9A9D0C8BB3E158908F535E2A9C424168BF19F3FB853661876B435B164D15CE2C988F464F7F4E4B9F9E63B983C793CD75E7B05D555BA749A7477E7C8641CAAAA4DBA7B72BCEFEA2F326BFA243EF8E1F3F8F94F1EE2A9273672C1852772C699F348A72CAE79FFBF138D26A9AA8A921CDFC89E4812AD7D025A730BE36A3C4E9BD9C0BB4F9ACCE28E46E9D609B3436505ABC275F1CAAE9A11390D41D5E22813C8B141D0A68B7DFBBBF0B6FDAECCDD7AE561E6E24F1159F1B5235ECFD85B41C16825224A74B67465B877DD3EB4867168221345689281465C3C92CB72FA32982A743339786FC5C49E2E745A3131984961675292C8022F8FED050C3A3A77BDD88F9BACE792954B6916A5320541CB28FDB51D1B61465DB8C83C944281A56281FDC3D9E90ED59C65642DB304C32EDC45821EAADD2CAD7FA2F0FE702FC1A20DCFB6457D0D11417B44BD3C0BDBEA583167221586CEB6032EE9812E96CE9D44476B1DBE11E5869F3FCA3F7FF7F70CA41D3CD3208ACEF7BFFA4EEA2B5D3CD15D46B82B44701A89E193E4735FFC1F2E7FC7E92C5934858A8A2855D555242A4C296D7CF39B37F3F4535BB9F2DD6773F1C50B8919A20094417757370D753544E3557CE04FFF9AC6DA06AE7AD7E974ED4BD1D337404B6B0D9515115C4BE3FFFDC5FFA09926E79CB78464BC821FFFE271F658106BEF20B26C31B6E130B71E3E79C66C2E3B7E52A1BAA008A0C5F4A3005DD68F7D531715419707EF9820E8447E07F65D1FC2DFF348797BF52AA3A2EFBC1BA36DC511AF67ACAD406AB9D2D226A2508DD59B0EF0D4AE0CC9D6567CD15B4A14330A3462824D8AA923C345EA0EDA5DC9B1560E5768CF9934563E856BBB18760ED77378B227C6635B539C7FE652164C6D2370C42D4168CFA113F7D0E5708E0D912C534CC428D598C5670FF53797CA1CD2DF5C48020927050FAEB75194368A3EE8A1641459BC49A470FB389683232622DD3CD31A139C377F0AAD0993B809664D35C9A8B8E178442231D24EC037BFF32B6EFCD573785E8440D4A2D63596CEA8E6FCB317336D5223B1427DEA4832C97D8FADA7B5B193B6E6188978841736ECE5D9E7B6327FFE4CCE387D0935B5716EBFE3596EF8D14FF8D2973EC07173DAA5D4B267F71E9CBCCB9E7DBDF4F5F5D13EBE9588E9239AF08A42FEA29B8BB0F10985B9FB80472E97A7ADAD8AC71E7B81EBAF7B845456C3094CFC855349CC9D493652C1C2D608FFF927F399D35415362B9085AE7499A8A4087A745CE16382A063FBEF97F53782DE0D47849A5E3F5BBA3788561ED17A46FB87C389B5D0A72C0D71B28646802BFB004257CEE18117F69237AA885726866A4008028DCA1653C58E27AF10F0FA0176AA17279DC6CD67F0F27949108E98300CA27CE7D16EDE73F14AE6743622BE54FA718B0D4F4AC03B5C128A0CE0048DCBFC1321C90CFF1489FCD02248A5B24691A0852C52EC7A52D49DA5CE5CA8FB2C9D1905DDB9B4F8BEEBBBB8791BDFCDD15615E19CB993993EAE964854F4103449C46398A22E891123123788C76264F23E37DEF2000F3DB199CEB6361E79683DCFBFD44760E75836A7853F7DD7623ADBEAC86434FEFDFBB7F3E71F3C035D8B70E73DEBB8F1D6A7B182288E35C0F4CE6AEEBDFD6FE94F7BFCD5A7FF83258BA671ED47CE95B54BBABB7A181C48234A57899E878303199E58BD81A79EDCC6C4894D9C71E602B66DDFCBAE97063969C53462B1F02964CBA6FDFCE29627E8ED4F3363662BEBD674F1D29E41EC4651EA602EB4B7B0A833C95F5E3497D327354AFFBB903ADE6C155A45D0E5B1C8D820E81DBFC479E40B048347D6B95BB4B28A9E7B0398C9F2D019D5A38AE9CF61265FA807842F7D21D816EA1E3B3EF4E75DD97D7BC0F2C9381EBDB68F25EB6A0839A3F8F9508B14057D0E2A1577E8A3AE206FCFC5EADB2FE50DCFB2B12D0B57A47613B0291D636BB682CBCF399EB858A31F66FD1D6E795582F6C4A3FDC1045D9A8052943986A3E7302BB0E8C41822E5621124A9290FD77216759D0357746D11138661328D90385CDFC3CD0E521F373963CE44668F1F8768B12584A1A86952D790A0321923669844449317DD9451772A67914E79C41311FEF0D07A3EFEF99F4A1FF909F3C7F3BECB17D3D1524126A7F19DFFBE8D0F7DF07412D12477DDBB9E1B6F7D8AAC6DE0BA29E64CA9E70FBFFE222FED1CE0BAEBEFE08C558B983EAD01C7F1C80929C989B06B6F9EBBFFF0088DF515444D839FDF7C3FA79FB9844B2E3D953FDCF5383FFCDFDB39E7DCC55C74C90A2A2B62128FBEDE2C8EE7D1D454CB7F7DE71E1E7A68037A3C8AD5D244F4C4A5588918735A63FCDFFB9731635C95EC4A1318A1E4351C498F6C58AD08BA3C721913041D7DF187B87FFC7B82EC81F2F6EA154689C2489193BF0E46EC88D6337A3E5CC8E62B5E3B525F0E3B64F7E63DFAAC9098BBB32E693BC00944BB284D7A730BE59B0F22681971BF56E28248DC736D72DD7B70B2697CCB91936A2222CDF83A776D4D71FA69AB98DA5E876F0B4DF3B5C939149A87E56E593B5AB6A23ABCDFB954831EB2D405616D8DB09091F85CD1AD51A85257ACE15C88A25D3B4CA41111B3746A48EFB3D0AA1D92DE202B66CF60FAB866366EDACD93EB7630904EC9AC9AB9D33B58B67812F36775D0545B81EF59E4450125272097CD61D93932B918E7BEF79F9938BE91954B27B262C9046AAB23B87A941B6FBE8F534F5EC2F8E64A76EF1DE0C7B73CC9F3CF1FA0AE46E73D57ADE0931F3B87DBEE788ADFDFF118975F7E0A2D8D49C19632FD7ECDDA3DFCDF0FEF62DDBACDBCF39D2BB8F28A93D9B9B397EAEA18F58D49F6EEEBE3A1079E67F2C47666CE9EC4E64DDBA9AC8CD1D9592FC1CD657D3EF5E91F31D02BFA48826546C877B661CE9E85555BC5972F9DCCFB4E984CBDB8F3489D235C868FE0C809D38AA0CB6391B141D0CFFE23CE93DF023757DE5EBDC2A8C819FF8D29DB5A1D2DA5458B151634D2B6477FDE21E3F8E4029D03695746CBB2B934A2C9AA8802C30AFAA2A4671825178B5B0E5F8C52147995EB505AD6AC3C9903BB64D6A02726D46C9B8CA3F15CB7CD93FBB2FCF507AE20A20B7B5B28B11CBA1C94882227270F2E21FA4A9981F221A130E137AC4317124E4469D342224A91B40FB6D37961995069AF2B383764D53A91BE1D7A9DC58D47773D8E1FDF447F6F0EC7D648A732385E9EF1CDB574F76519D790E0B9B55B696A1CC79927CFE2DC5366E13A1676DE2697CF33386873EF231BD8D735C8CCC94DB4B7D6938C0AAD188C68820D9B77F3C4532F71FCE269B20C695F7F9EFDFBFA98D0398E19B326B0F1C52DDC76FB6AC635D672C53B575095D0A5FD2E5911E3C9275FE4A187D7CA4495450BA632635A13BA1E953715F17420BEC471024CC3249DB1F9ED6F1E116D1C39FBDCC524A251D2A93C7FF7F7B7E0BA1102DBA3A73743CE30099A9AF0DAC7D3B16432E72C69E7ACA9F59C34B355F69A0C6D78B200F5880AD38AA0CBA3B2D14FD0864BE48F9FC37DEEC8134B84FEACB71C3FA2275A79308FFCA89052C30833E3066CECB6D89D71C97922D013979470B7CA82CE0521599AE786FB01BEC14D1276302F9B26B57F275E2E2B1BA48AA2F5FB3206B7BD3848754B339FB8E81459D02A54410F26E843ED74A17BE4E57A73E9B8C3799D87248E12A786187750379482DF59DE5464324AD8C1457CB658783F7003F29ED8870C86956566CB380677E7F8D91D4F307B4A3B1FB86225F1B8869DB7C8E71D49763FF8C1EDAC7E6E278D4D4D7CFAFDABE86C34A56DCCCAE71948EB7CE9DB3FE7E295C75355A5CBF65DF555111A6AA2B2FE46241AE1073FFB2303FD196A2A13AC5CB984BA9A38AE67D3DD6D71EFFD8FC908F8AA2B4F236E0A6923C340CA4133A2C4A26282D70E1D3162424188D3F2F00A374A207F04A3CA7ADBBECE9EDDA271408ACE090DB2029E382BD6AEDD851718A407036EFBF5A3BCB4B34F4A3879132267ACC26B6E605A93C797DFB180B3A70B794778DE45275E71AB5511F41BBC6CDEF0C7463F417BBD987FFC1CDE869FBCE19D2C7E50F89FF5A6F947BC9EB77D0562C61D106D11BA320EBBFAF3ECCB055832522E542FF30359DE532ACBB2EEC6F0B4E1CBB7BF34821E7EB760851EFA83ECF957D06807F7BE842F9C1C8E8DE5FAACEB0AF8C3F634A79FB294F38E9B24279A0AA6ADE1CF9724A214A3E1E277149D1743C45C42DA877A9D0FD69F8733040F47D0A57537647BAA42828A2C7A24BBA104D86E1E2FD7CFC49A4ACE3D7E111FFF9BFFA3BABA8153164CA0637C0BBFBEF75976F6F449FFC9E5672FE4BD979E483693E5A777ACA5B936C15567CF0527473A9B12FDCEF9E12F9FE48107D613AD88E004010BA6B773C959C7D1586D08C3057937CE9AE7B7B16EC30E4090BB88BCFB686A68E1B24B4F66DAC47A6286905C3406D236BFBEED61FEF8C4063EFD89CB18D7501936CC95A4A94B0B5E36EBC8CCCF6884B03142A1AFA460EFAEDE14CFAFDD4C67BB68B555174A165A848D2F7471C30FEF65DBF61E594D509C0156472B15272E215B19E1EC6915DCF8C193C2F415697B0CCFAB915A54045D1E92A39FA0AD7D988F7F166FD32FCBDBA3571935B6093AAC9F519C5FB77D9F8D3D595E1A74487B4658A54CD7A4C62C62D762E727D9B95A62F2C666E64B2F49499E9E879DED27B56787943A44169ED0B71FDA65B379C0E79A4BCE607A43A5D4B24B09FA952604C34D1B2E7C344CD007BB3786258D42C3D9429660A9AC213E5B1A41CB946ED13CA0904558DA915BE8E69E982414371C2B4D53D4E7ACB9D398D2D2C6D91FFD365FF8C47B3975F1447EFCABA7F8DF5B1E473345395593A8DFCBDF7CE2024E3E7E269FFED2F7A96968E6AF3EB08AE66A91F99792938DDBF7E4B9E5F6B53CBD790FFBFA2C1AE206579C398BF3CF9C4522A6614685B32646366FB0BF6B90FE8134C97884F1AD0D744EA844D610742D1C342C2BCA962D7BD8B5B78F850B3AA888990579CAA367D0E7DEFB9E938D676B6AE29CB6721EF3E77662BBE942D6A6C6FD0FBCC075D7DDC505179ECCD967CF97D98B77DEF1240F3EB89E7DFB2C904D02C4790379313F31A593CA139630AEA5921B3FB89069F549793E89E256C508FA35E729CAB8521541970192B8698EFA9657D65ECC3F7E166FF3ADE5EDD15148D03272150E559150A7C1F6812C9B7AB2A47D51DB423831741CDD43383644728520E54016030E67E18B9DAF87A0293B102A991E2AB499129D52ACC13E52BBB7E13A79A93FEFCBC05DDBF3548D6BE5FD179D4432081FA7C36D18962F8AAF4B0F914C4A2929B87FA853A35473169F2BBA338AC5F60FD59D8B042DC95A44CC857E82B2334AE1C70B7CACBC2027F1378B79CDD59C3EBD9DBAAA18BD76824BFFDF75BCFBF4395C71DE095CFFBB35FCF2FE0D61179920C0C9F6B3727633FFFAB50FF1FB479EE1C7373FC8673E743673DAAB480FA6B1DC3C96E5921DB0B9E9EE17B9FB8F3B69694EF2912B4F64E98C4634C3A53AD904A6B80159619AB51960EA3A51334AA2BA194D384ADC0C795BE7F7F73EC9AF7EF7282B4F5DCA79A7CE2126928A74979D7BD2FCC5E76E606FB72D356A31A7675B69CE397D0E9FF9D42A7C574C2C06F4F4A67966CD36D94477F1E2690441826F7DFDA7AC7EE245B448122396C0F0C2BA2B82846D4D67A03641ED8AA5CC98DDC45F5F308F55339B10A5B3C2E8BBEC93E755AF5745D0E5D19922E8F2707A5B47C94C3A4D931EE66D5D2936F7E5C8184939D96914E48B8C8804458DE382EE5B24C7305DFBF012C66BEFD4B0052FECF9272268177BA09781DD5B65D71441803B07E1AE1D361D53A7F2DEB317127545BA83D046C3AA69A12F3B5C4A5FCBDFFD973B36C4DF0FAD4A375C00A93019284A7F160A2B15B3030F9A142CE8D1B20FA2C44614DE0F35E83019C5C2772D702DCE9BD9CEB249CDD2EB6C6BB59CFBE7FFC1BF7CE9232C9D5DC7F76EFE23FFF5F3A7C08C482D56CFF4F1D90F9FCE490BA7F1D9AFFE90CAEA717CEA9A93E968D4490F0E62D9196C4F279D8971C3AF9FE681A776B2EAA4697CE01DF369A88960C422FCE496C7E9983891D933DA185F671217968A888EEB193CF8C85A2AE31AA7AD5C246A0BB2FAB95DFCFD577E4867CB383EFF990B68AAAD92730FDB77F573CDC7FE879C1B0B537F021D3B6BB3604E2DDFFDF6D532B925D06C742D86615648FDDCCE67652A7B4F7796679FDDC2BD0F6CE0F98D3D44021D5364558A3040B83D0870A6745073C672CE9A5DC35F9D771C53EB92AFD256E1B5CFA4434728822E0F3345D0E5E1F4B68E129AA3E5796CECCDB3ADCFC6D1A204BA29BDB9A2B09BD05145C3D7B001529831286D03AFB01CA6A5E06BEE5F512316F537EC811E06766DC5B1454B2B871DA980BB77794C9D3993F79C311FD31D8EB25E89A04B13504A23E822391F9A8C529A3D2826D44A53BB8B045DD4A08B5E6841C8C5085A24A8086B9D48F2081353B244038789D5559C3AA38DCE862411334AACB292D33FF67F242B2A3973C9049A1B6AF8ED7D6BB089CA4CBE93E67770D1394B18CC64B9F1670F31ADA396779E3E07138B6C368365D9ACDDD2CF8EFD197918F6F5E6A9ACAC64D9DC76AA2A626CDDD5C70D37DF4375A28271E3925C76F65C56F6ECE2F600002000494441542E9F4ECA8AF0A31FDF475B5B0D0BE74D66F2C466621193ADBB7BF8F92DF7D3D6D8C439E7CC26198FA3FB1E7BBAFAF99BAFFF86ED3BB3E4F3AED4A0135138E7F4195CFBBE95B8B29598C58E97FAB8E79E3554D72458B572A14873A1BB2F232596471F7D89EBAFBF8F88AEA3FB01AE485011A78F68ED555745E28255D4D447F8D35327F3BEA513A98F475EF33C29778022E8F29052045D1E4E6FF1A8E1A40041CE83AECF969E0C3BD326AE8C633C9C00B26E801BB6D90E7BF9BD89CB90D3C2B5C90F76D3B7630B8E9D95A4B72BE373DF2E9F0953A6F3BEB3162314F1701EEBF0BD04C3505A3442092BCD95BA380EADA9513A2128E50E69A5B30B76BBE16E28C5085B960A15FAB4A8F72C1BBEBA327A96A46D7B8584141BCDCDB2A8A38565D33A694C68C462069188705918DCF3743FDFBEE17744137196CCEDE0C25366316B6A27F73FB691B696763EF5B73F6057F720A72C9CC4973E703251D325675958B91CDBF6E6F88F1F3FCA9F5C7916EF3A773EF94C967FF8EFBBF8F99DCF485C4CCDE7FFBEF54192A6C73D8FAC2716D3B8E6AA553CF8E456BEF2ED5B98377322E3C735B0706EBBB4F1897D58B771A7B4ED2D5F34998AA429A360218D740F183CFCD80BAC5DBF95DA9A4A4E3EF138664F6BC6F35204BE284C65F0F8D39BB9FE477772C6AAE339EB8C053CB5662BDFF8E62DE4AD28AE2B52950ADD1F45FD0DE9D81025397C5C53C39B3189CAA58BA8A886EF5E398F93A736C94317CA1C4796B8A208BABC8B5511747938BD65A3E4692F66E80B9A5FCAF1D9DC9767F7A08555E842276A26E47C911518BA34E4E55248A51EB24295CA1A877077F91174F1422CCA1342CAB4A5C4D1B363236E3E2735E8BD599F07766BD4B775F0C10B9713D38C50CA286CC3A1124758C9544CF689ECBF509429B5D21DD6565778049772856841E5879F1F766984D24758CB397C1D367C2DD6D870E5CD44764E716DB2FD39A6348DA3311963E9F446664FAA236A6898310333D6C8ED0F6FE0C6DB1F63E38EBD2C9A3F8D96867AEEBEEF71264F9AC4FA2DBB686FACE18A55B3B8F8A44EAA6BAA71FC80AD9BB6B265771FB7FC7E03D7FEE9859C38A7153F6F71C36D4FF1AB073690496798DA56CB173E76169695E1F70F6F67C3D67DAC38711E0FADDEC4DD8F6DC4CD8425528F9B51C9B7BE740D6DCD757CFFC6DBB9E99607F8D7AF7D94C5F3DAF19D5C88997892F20DB2962BEB474784AE2D4AA54A8BA3B0DD451848B96CDBBA9B86FA18CD4DD5FCFA8E67F8F677EEC430AAA5475ADAE870E571105DDBA563C31713CD60D75753B57C095A5B1DFF72C51C2E3AAE45E69E86245D284FFA06AF0C45D0E50137FA09DAED09270937FEACBC3D7A955163C3C5115AE88A997E3B072C9EEFCA91173193268A43EAE43D8F9C78542F55055F4D673E34B82EC9DA7BBDA006AE8333D847D7B60D78D92C8E93A73717F0E83E03B7BA9E0FBF6315B551531244B1B46891A043D2966C7C5021A4A2AC513A41585A204946BF41584CFF95AC74227B50269D48CD5964040A19C339A8F8BE2D9351845FD963CDBA3E3C4B448B1AD79C3B87F79D3D839A6840C48C10ABACC0D3A2ACDF76805BEF5EC3C34F6D61206B61B92E139A2A993FB59365F32631797C82E6DA186DEDED18A6CE0BCFBFC0819E3E06337166CE6EA5BED294FD05F7F5E4D9DB93931A7543459CFA069F6CDEE4A6DFAEE3B67BD7108B2749673C328E256B74882784E5F31AF8F2272F65F6B476563FBB9DAF7CE326FEF29397B17CD94490859184BD50C81182A8455ABC2DDCD1E019F8BE8E70F9AC59B38B3D7B7A58B6741AD55526E203BBF6A7B9E5D6A7B9EF81E748A79C822FDE970D033C471488124D741D74238A1B89139B3D83CAC5B3F9C87993F8C8091D54897E68E209A95058E9F59E3FC5F18AA0CB436EF413B4E111F9E367472651E5AA47467DA1FE7042509744B4B32FCBE63E87415FA4DEEAD2F79C753C6CDF905ED7D219F5D735117898C24505D5E155CF1A39D5278A09A507D8BFF9799C94A8C591236D3BACEB8FB1211FE7A23357B07C5253C16257F05F9746D28526AFA51A7451C628FE6D485316581C525FA318359746CF42069004ED7B8852A143B63A9198229C1CB25D958393CF5315093869C102563FFE025535AD3CF6FC0E164F6BE02FDEB984C60A88181AB1448268348A6E98ECDE3FC0D69DFBC966F39214639180AACA040931A997CFCB47FD8E09AD3436D492CFFBE4F396246BADD8FD44A4DE8B92A6AE2B13595CCB2197CF48FBD4B63D19EE7E7823DB77F7326D721BAD0D491E7D720B0D0D157CF0BDA733AEA19AEACA28220774E3E6977869670F0FAF7E01C7F53967D5024E5E36155364120A4B9E63C93EDF791B0C23206F6B5C77FDED18BACF1597AF24168DF1E4531BD87760102BAFF3C0C34F93CFDB9C77F672060607686CACE1C0BE2E3C4F67D6EC697CF73B374B32F7AB6BA85CBA8459CB3AF8FC457358D159272D9DBE5E9C8E7E63D29A22E8A385A0233A9167BE86FBD43F832B2E8837BE442FB81963F205A3BA58BF8C32358DFD83799ED9D54F464F821112F440CE262BB2C5C4A36DA1C07AE9E5F17A2E95C3F93A5ED5EB515CB9B0AFE50638B0E939F2FD7DB2925DCECAB22717E3F1BE04D367CEE4FDABE613C8BA1FE11A4B270A05798A4941C9F525B5360E4D46092368F1E82DBAA184F5358A51F541D982059D5910B9F8BB23258D82AC213307056187EE0D3B635111C007DE790EE3E319D66E4BF1AF3F79800B4F9EC79F5DB8105377D1A326D5958942F53D61C71384EA228A2B897E8BE96C1ECB1637823C563E47E0384CEC6CA3797C2B6622269F0C743C06F3067B0F0C4AFFF2C0608E6432C6B8BA4AEA2B22D8763F962DDA6841FFA0452AEB9248681858FCFC77DB59FDEC06162D984ECECA71D292E95C728EA8EB0CF73CF002DFFCCEEDAC796133575F79325FF8D455AC7F612735B5513A3AEBD9BE2DC58D3FBE8F8ECE24175DB092FD7BF7C93AD46DADF5BCB8F100FFF29D5FB16173376D4DB55C76C54AEAEA74162F9C295D2D56D6A1B2CAA4BEA91E5D8BF3FDFFB999813E83DFDDF128FD4D6D542E9FC307CE99CEA74E9B4E5C78DC656661B16EF7EB39F3C2EB571174793C36FA23E8884EF4F9EFE0AEFE47027BA0BCBD7A8551A250BFB9F0E3A08FDC6CF4116DD0613E2CC82CE7073CFAE27EFAFC18463C5EC808343890B3B134A1136A8812CE2398795BF66E08C274ED0C3D9B9E23D7DB8393CB62E5B2F45BF074BA023BD9C417AFB940DAF1867A7F9756A513E45C983C3C1C411F5C6363B84555697D8D525B9DACAF51F03A4B0DBAD0BEAAD8EC5554AA13B52A703CF6EC4DC9CCB9692D0D5CF73797F3ECF39BF99F5F3EC8DC9953F9B32B57D13A2E89AF9BECEB4D317D7C1542CEC9A4B2B2C7A088C48543C3CAD932C1C5B2F2E49C3CB5B535B4B7B4128D478956082F739CADFB737CE55F7EC9DA8D3BD9DF93C672908E8CE6BA1873A73773ED7BCFA4BA52C74D0F4A4D5CD4CF10371622113EF4C55FB0A3CB420B5C34CF65C1F47AFEFEB357B064EE4499F1B77D678AEB7F7C2BADE36AA9AA6AE09BFFFE332E3E7F059FFCC43BF8ED6F1FE4AFBF701DE79D731C1FFFC8A574B4D7C93ADD426E7AF299ED7CEDEBBF664FF720313DCF673F730573664DE69E7BD7B07AF533B434D7306DCA783239970B2E398FA953EAF9C5CD0FF2D5AF5C47AAA299DA734E65E9DC66FEF9EA654C4C98050DAED8D5A1ECD36768A022E8F2301B13041DDB743DCE637F4790DD5FDE5EBDC22863DE47889EF20D30E247B49E37E3C34305E9029F6777F7B3EE409E644D9D4C991673F639C7A74F5CC8087216133AA12821FF79BD014CC18957BA1FAFD0E864A8E5959453A4842C269FF2F46C594FA66B3F7666102B93216BD96C722AD998ADE41B9F788F944286DB1A163305C3EE289444D0826CC5F2B2D6557E2855944A19C5A495E1FE8161D42CE48BE264A19C189456BA30ADDB96F2874D904FD3D6D0CA434F6C6560C0E56FDF7B22C7CFEAE4406F3FBF7A681D8E11E7FCB397B1FAF10DDCF5E85A2E3E753EEF38750E6D8D7172D99424E79CA5E15869A2318D8816913246BC2A492216150F38E4F538773EB49E1FDCFC304F6DD8433C9E90B53722C2DC261C24A257A3888A67B471D945CB387E4E0B869F93DB8F6FB2E5A5149FFCD6EF481391BEE4381E679F3285BFFAB3F319DF5089EDD9329DDB301274ED1FE0D6DB1FE4C1D59B9933B583ABDF751A9B366E67D3A67E2EBDF80462A683655B589E887303EC40E7BBFF75071D1DE389472D664E6E63FD0B5BF9F7FFFC151133C6C7AEBD185D37F9C63F5DCFC4C9CD7CECA39713040E37FDF40FECEC75094E5841DDF83ABE78D93C2E98DA50A8F1A208FACDE082D2758E09828EEFFD03F6839F21E8DB74447868F533885FF9304485D97FF42C438625F1388FC60D7FDC4675739B2439F1C09C760306F236AE26AAF0C9A4EE90280BC4FC7AF939A4F68397575AC7CBFE2EA3618FCCDE9DF4EFDB49A6673FB9C15E9C5C9A8CA7F1A2D3C0F2732F65E994163CA18BCA4941C1C98592A28568BAD4D75C9A2D18EAD122B12424E82152164938C5D655B2546858FF39EC27188E15846C89DFC5EC9967E1DB2EA201AC20D7A6CA4A3E7FE5198C4BEAF4A7323CFEDC1E3C372F1FFFFFF7CE75DCB57E3F3927862977D89451E607CF9DC9C72E582823D93B9FD8CE3FDEF07B164CEAE423979D4847438CA4E9138BEA44A2097A2D8DCB3F7BE3FF67EF3CC0ACAACEF5FFDBED9439D30BD319981960E8D23B82A0A8891A6BAC29A6F7DEFEC9BD3726F7A627D7146F62A229C6A8B125512CA8A8802220BD0E7D18A6F776EA3E7BEFFFB3D63E0706053D5272AF66B60F0F32B3CF2EEBECFDAE6F7DDFFBBD2F075A7A98775E2535792A9FFFE8E51CDE77446A6578FD1E8A470EE7DB3FFC235DC10C36EF3E484196C167AE9DC7B2B915C4AD08A613E0C6CFDD49BF290208958C3495658B2732764C392B57AEA7E148339FFDC8E55C7DC554E962138B0A77700B4DA6776C3979C762B654A18BC735EE7B6815BFB8F369028174465595D1D6D6C5F471D9DC74E3321E78E859FCFE346EBCEE02145DA33F14A6BCA4587E57ED5D1D1414E4A16A169B371FE43FFFF33EC2E7CD451B59C2D22A1F3FBB6EE671D12DA1FD721ADB50049DDAA0BD3D00BA7303B1173E87D3B13DB5BB3AC55E8AEEC7FB813D2881A2333ACE59FD70C2BD44469B8AC3919E101B9AE3E81EE1741227E63874456CC2A2334CD564FE5CD0F04E24C09DD52B7A938309AEAC45A4A79DDE96467A5B1A0876B7486D68A110D71E0FD0513E979B2F9A438EC099B840679195750B7E227A7E2D38BBC09BB0A63AD61DF8FA08FA58349D10D73F46A54BD85589283A2AA874C228362EBA1C6DA93DD1D91FA3B9B5939F7CF40A1657E7D0D0DEC3577EF30263CB73B8EA82496C3EDCC1BD2F1EE0506B5C52CC4C3B4C866671D9EC0AA68ECE273F3B83E7371DE2A1557BB04371668C29E6C3974F656A550E5E03E24A1AF73FB795DF3EB18B505F275FFAC0855C30B98CC9132AF0790DA9156D9B361DFD7D6CDD7D8467371CE5DE475F116E855CB168145FBA71219A3D80E9683CB67217BD4131F1D81C69EC64DD96161C5D98CF86890D04F9B74F5DCE37BE70312DAD1D3CFFC2368A4AF21835B2180783D5EBF6B273E7513E72CB6232B2D2F8D3FD6BF8D91D4F62DA5ECC6888F2920CBEFB95CBA5D0FFF77EF62899593EBEF7ADF7B27D571D7F7B6213975F3C9BEBAE9E8FEE31D8BAFD00C1C800C545053CFCF04BBC14CCA63337979AAC280F7C7C51C21C3E2943FAD69FBF21804E6DCCDE1600ED379B89ADB815BB61756A77F5067B79DEF3185AC545677C9CB3738044549930AE306D8515DBF613CFAE9020261A5204D7B92322AC47C54E2E0BF53863E3F4A297D3BF7637D6173248B1503F031D2D74371DA1BFA59EE8401F91984938E6B0D1338E65E7CF654E4D398665CA6298E87A14138EC4E8C1C541DB923A1012A093DC68E16C92307B3DB13BD04D79B862FB6EF1F07554BA9809428FC48A10150EDD2187C3CD411ADB83DCFEC94BB86A5A213B0F7771F96D8FF29E59D5BCEFA209ACDDDDCAFD6BEA68E80E93E9D1C84C73C822C2A76F5C4ADF401F79197E0E3675F3DB47D79199974F535D1D5FBD611E972F18236979BB8FF6F1A33FBF80E1CB60E69861541705F8C8F5737114836028CAC04018BF57473344FDC0E07FFEF2140D6D0EAFEC6A223D4DE56BB72CA0A2409379E8984863490A9DC6C69D2D7CEFCE55988A8EA3DB38E1305FFEF8C5DC7AFD0CC20321F6EF3B443466535D554A7BB7CDB7BEF317F61DEAE4131F5CCC65974C61FBB646FEE7EE2739D21EC289EB32EDF1DDAF5F4A46208D1FFEEC11468EC8E72B9FBE8C47FEF112F73CB09E6BAE98C67FDEF6613A3A43FCFBB7EFE4AAF7CC63E182892C7F6A330FD546E8C81B468ED6C7B35F5CE2A6A9A4C7A4D00F7FEBCFE11040A7F616BE2D005A745DC59EB8FEACB87A6BA3AFC373C93DA98DCE39DE2B11344B2924C1DCD8D5D8CDAABD8D948CA892790101D1BD11E88C5852E3D9CD030F7A194ED6717226B21B27BBDFD71DCFFD81742119E8A1AFB581CE43B5F4773449801674AFDA78319EE2D1CC993289492386E1157AC5223123DC4B060923C9885802F471AFC06403CAEB54E912D655526FC37485F68F19BECAE614578B2466464044D8669CEC4C3F0BC68EC4B61522518B25532A1916D038D4D8CDD7EE7C8E8B678D62F1C4E13CFAD23ED6D6F5E0317432358BAB178EA5B3BD930963CA098623E466FA39DAD84ECF401453F5B273F77EAE3E7F32E5055E06A20AF7BDB897879EDFCB8D974EE7BAA53514A4EBD2626AF781A3540E2F2533238DE6F62E0ED71D61E1F4C992E7DCDC61F18F557B7879D35E96CDAEE48A4535188A70A7B1D8B9BF995DFB5BD871A09DB5DBDA7144CD44D0DAE271468D18C6D47139BCFFEAB94C195B4267CF00CFADDEC5F2957B58BDFE30B198C69C89597CF5F357931BD079716D2DBF7F701DF547FBF0E90E1FBC7E0AB3678CE6851737A1281AB3A68D95935E5D7D1B1326543275EA6899427BECF1754C9F3E8ADC9C4CFE78EF4A9E3E1441193716D5E967CD5716CBD670292025D3D0A7961538D52B3404D0A981CBDB03A0BD1AB1E5D7621D7C3CB5BB7A83BD14231DEF47EB51FE0FF812BAF460297E40D85278E4E57DF4797C9414E449301639C58EB04D8F10DA10E02C0D5106472BA78BC6A73F8C32E52852BC227232C3447A3B68AEDD4957FD7E9987B6A3033446FCB4798A482F19CDC5F3CEA3AA301B4B74A909FA9B743E71BB0C93002D9A5092CC8C6379E6846EF3F122A12B1DEA02F4F1085A449D82B9216450456130160BCA966E33AE909399CE2D8BA730B7A698CC808F17B71DE268632FC387E5B163DF3EC6578DA0A727C4F20D07C1EFE7D259A3C9F32B1CA96FE6C08123CC9C310E9FC79014BD7DFBEA78F79259F83C3AD1A84D9AEED0DDD3C191CE28BFFCC7665ED9D3CD7F7C703197CC2A21CBAFB362DD5EFAFA07B862D96C29C224AEF977F72D67EAC4092C9B5D4D4BA7C5F31B0EF1E7E5EBA92CC9E43337CE23C70FDD6195EFDEFE08DBF737513EBC90BE7E4BF2A5354DF0A155E2518BD2BC087FB8FD134CAACC055DE3BF7EF138773FF03271DB8F1989F29B1FDCC485E78F47B1426CDBD5CC776E7F926DBB5AF0185E46975B7CE93357CA7CFE5F1F5A437757841BAF5BC89C59A37865C34176EE3EC89C59E3A81E59826A183CBD621D1B361F615FC44FE6AC29C408F3E297CFC727177F2E956828823EFDF7E9CD3EF92F07D06240BC573F8B5AB6E0CDC6E69CFFDEED78B625F61EED0CF3E09A3D148CAE22CB2B3AF15444EB417BD8A63F96606B9CF32B4AFD042222564503486480B603BB69DEB78B486FA7644B74866D7A1D3FDDE92398357B0E4BA78D910EDA22D5612554E88E6B6CB85D82C7DCB813EDDBAF7546B107E59945AE3B09DC029C054759A64DE282B9102266C531C30EDDBD712E9A51C317AF9985473778EFF71EA4F65013D3CB73F87F1F58847053F9FD935B79EA957D8C2ACBE72BB72C233F5D65F3CE7A543BC2D489C3A5EB89B0988A5A3699693E2C33447666366D4D6D7474F6D2D4A772C73F36B2F15037D7CF29E1B3372C24C36BF0D7E736515E5EC8ACC923A96B6CE3BCB115DCFBF73598C0A7AE99C7A18630B7DFFD142BD61F66DE79357CE9FD7329C854680D3B7CF5DFEF62F6CC69DC78ED5C0E1D69E3377F5EC9FA1D6285A2A29961164C2BE0E7DFFF38A5394234CB61E79E56F61C68A72FE4D0D1D1C6273F7011861A053BC6BA4DF57CE7F615EC3FD283A2EA5CB67034D75D3607AF07D66FACE50F7F5ACE55572DE0C61B2FE6D39FFE09FB0F1D62F1A2697CE93337A0F974FEED5B7FE4D5CD0DA48F1D43C545F3315593155F5C40BA8C2D5C95C5D3715A198AA0537BD7FE25015A9FF54D8CD9FF96DA089DE3BD441422F278EBF735B272672BD5E78DC327B514544236B484E284E3A75A42FEF323689975948C3BD7C854B1A2F4341EA679DF767A9B1B880CF4110E0E108EC669338AA898BA984BCE9F454017AEDA0A8EC84927981C96A4D125CC5E0745CCAFCD3B4BFD8C41CD2749F076F59DDD766E91F270E216B1480433D6C7F8B2524CD28944427CEE86F33954DFC257EF5E4986C7E0FAF913B9727E353DFD31566C6B94ADD8B3ABF3193D3C93E52F6E60EE941A8A057D4E350864FAF1780D34434CA436E118787418E8EBA2B72FCEC18630BF5EBE8D757B5BB8FD2BEF61D6A84C0CC561F596FDB4B5F5F0BEEB2E213B53A72F14E547BFFC0B4B16CDE192E9D5F45A3A1B0EB6F18BBB9EA52C3DC0E7DE378FDC348BCEA0CD4F7FF157AEBFF6122E5D3A51AE18B6ED6FE6C7BF7D9C504861F1EC712C9C554D557996E44A4BDE8FE391D2A46271250D73A33184359910107F76D54EBEFD932769EB73D0741FA34BD3F1C7A30C2F0D70CD758BA9AB6B276A06292BCD65CD9A7D8C1E3F82C58B66E3516D56AFDBC58BAB6A797EE556BCD515542E5B886DD82CFFDC5C32E56ACE5DD90D01F4B90389B70D409B6B842FE16F211E3AF3D1300278AF7A0AB568E6991FEB8C8EE04AF1F7C5151E787127FD5A265555A5A8F108263ADD5187D6011353E49F4F83EE7C4697F6261F96D1BF34034076D585DA9BE8ADDB4DC791FD7435374B3B2CC1A8684B1B41E6F8455C38F73CCA3234ECB85BE893A90CE16F28803541911BACEF7C2C829646AF2EA73999061111B4C837CB7F4B9A5D18D190220A8B66D0E45DF3E7306A7809F150174BA78C42157E7C1E4853559ABBFB68EB8C70F30F1E624F4B04CD085093E3F0C5F74C9682F5AB37EEE243974E27A6F87968CD6E1E786E27936B4AF8E6871633B9A2905FDFFF38E98100572E9E4B6BC3513A43264F6F6DE6AF2F1CA6AA3893FFF7FE0554157AC8503D1C0D3A3CBF612BCD2DADD4540FE7CA8BE65098E9939D7BAFD4B6F0F51F3F4A575794AF7DF8022E9A3712D58CC97674512C35BC3AF9B9D93285613B2A5ED5C0B4A2C44527A960C2881491F87FB12C114F919CF4145984154EE58A1D97A92891BFEE0AC153CF6EE2A18756B178F1242EBE702A15C539B4363773E4681B5959856CDEB297E933C771FBED7F22AFA084EA9A49FCF72F1F4133A4510F81CAE1542D5B84EDB1F8FB276792257E282DD54E4FC47F28824EEDED7CDB00B4B5F7414CC1853EC36615392C9A0763EA17D0E7DE96DA289DABBDC403AEB8207CCFCA9D78871533A22417C516A0ACD311B4690D99B251E5ADD7C9CFCD452714A71334BF84D4A9484B840718686BA4E3E01EEA776EC0944A7751FA940CBAB36BA89E349325D36BC8540598B8A2476EEED915DE7F9DD9AB28048A7D04E80EF212143F8B460550B9EDDFD2834FE8520BA797B84347D022BF60381D5D3D0CCFF1F1EDF72D66DBF61D8C1951C48C51C3D974B49DDF3DFC22EB9B606F7318AFA671D3EC726E983D9C83F5CDAC5CBF9DCF5C339FA0E3E7AEA737F3E48606C65464F2EFB72E64EE980A1AFAFB8974072909A4D1DDDB43674F2F073AA2DCFDE44E3C812C469764529619E3D64BA7A27935344F3AAA9646C0AFE26816BAEEE5177F788CA63E87F5B51D14A4F9F9CE272FA2B4C88B1535B14362A511C774A2E46467911908C8894CB42B498F492909EA4ED7429B251E170A83A21148E482C57322BE1321CC1FC5892B6E4F90A611770CEAEB3B292F2D4053A2C4A3415A3BC23CF7F201D66FAA63C3E69D5CB8E47C9E79661DA6ADE3F77931851D9623689D161963CAA8BA6801966EF1B74FCE9011B44C710CE5A0CFCD8B9638EADB06A09DBE7A624FDF82DDB2E1988CE5E98F8C825A3A0FEF35CF9DFE21CECA274504E2B0BFAD9F3FBEB09BD2CA6ACA0B32112D0716BA04EED6601C4BD2EB5E2341774C1B63D0859CF0B3C16C8FE43E2791B17BED71DEA40699AC511EFB58C252CBB16C62E11003AD0D1C7AE5597A3BDD2EC3483446B796472C7F0C93CF9BC2FC89A3F16A8256771CA093290D195927981DA245F9C4EEC0C4BF851B8AF41374591B02A0ED585416E10C8F8F57EB43744684CAB1C6F8F23C968CCB9574C0EB2F9ACAAC51651CEAB779FFB7FFC49EDE742C5BC5438C4B261672C3CC52BCBAC5FEA39D4CAFC845F3186C6BEC66DDAE26C6561470F9BC1A32020196AF59477E7A16D34795D3D3DB416747AFB4897AB9B69D07D63470B4AD8B65F34673DDBCD18C28CE241E8E2452242A597905EC3DDCCADD8FBFCCCA17F7505452CC47AF9EC527AE9E8162C788C42CFEF0C87A0CC3275BC2C754E6332C2B204156342505C3260D2D5D7409479D8843437B90EEBE20FDFD11A96F921EF09395994E699E261DC005FB64586E3AC2C65040A9AA8B62652CA1FAE7F0FCDA43FCECD7CFD2D51B930541316A49BB34F15D688AC8928867CF266F4225232F9C434C35F9C7C7A71348E6A08700FAAC20C1A90EF2B601687103F10DDFC7DCF07DB062673C286AC124BC37ACFB5F174E1200FDEA9136FEB07A1F93274CA434C7475C11D1A34ECB80497348E41913F29D83F8A62E01E4D439E89355D68FB146CE70F4125DDFC7F59E931D8D62E96DC668DBBB85D603B5F4341C20D8D5268571426A80504E2517BCFBBD4CA82844111A19423B43E44C85425EA21B5000BD00665344C6096ADDE0085AB6710B2FC4A4BFA0480BC462A8668459E346F1CCEE767AC21AC53939146579A8CAF370C1B4914C1C9E855F57E973FC7CFABF1FE1F13D2255A649AAD9CC8A4CAE9C94C3D8021FAD9D3D74456164413A238BB3F1FBBD780D15DD9FC18EBA3646E406D044039119A7ABBB9B48FF008663A17B7C3CBCA985A73637D3128C32BA20939A51651CAD3B4AC0508859363593C6B2F2A56D34B60D50539AC907AE98C6754B27929BEE9500DC3710E7435FFF2D55230AF9FC872E939D8642DF595CA7C8313FF0CC761E59B18D1DB50DF405E3320DE65155A9C02744F6ADB84644E8B4587DE464FA98589DC775EF9ACA82E91520A26C494237E5337FB825CC8F7EF5349B76F724D267B6D4821691B8C85DD98AE0E9086D68B8B6DBAC0000200049444154F7392B9B359EE18BA711B50678FCA3B3E513298D225EA3AA98EAA33594E2486DA4DE56006D376F20FAB74BC00CA676776FB097925D85F7DD0FA1E48D3BE3639DC901C463BEF640237F58B39F69E74DA12CC78B684BB16D8DE6605CFE912DDEB22960F0262A42A73EF371807ECDE7DE4A5D5102EFEB3F70B2E0FD9820883064ED6AA2BBA19EF643B5B41EDA43B0A39998E510D4B3F04DBE841953A75053988962C52485CD357E75B9CD326D3108A0933E8372BF24F7391A763D06A520BF89190E529D97C1758BE6D0118912B11546E4E79217F09091263CFF84E59FD07AF660695E9EDF7E845F3F53CBDE862EDAFB2CAA0B7C5C581360C9E812B23C2AF73CB785E125C31857293A4E856B8D82E928043C2A23F23339D2D2CD81CE8894171D9EA1519A019A1D27A807D872A49B977635B3F560BBBC0EC712024A82871DC7AB397815583CA78AAB2F98C8E2E923C8F40B8714D77641AC0A0E36761248F752989D8EF05314631DC760EBBE16BEFCA3BFB3A74E00AA978047A3A0C0436B530F936BCAF1EA0EEBB71C46248D8533555F5850A7A3CC9D52C6C76F399FB165B9684E08413B178E914290E927BF7B86755B9B133C66D7BC57344149912BD9879268A4B26D2A174DA36CEE646CAB9B473F3C47A637444A6508A0CFE4ED7FF3CFBEAD009A7898C8BDD3717A0FBEF99DBDC91E8A27137DDA17D1677EFD8C8F75260710F0F7D2BEA3FC6ED55E664E9BC6F05C3F36222FABD13C10A741444A8A50DF3B19509EFBCCF4C9087E273BABCC8BCAC8CB41318344FB7A659761FDCE5769DDB75DE6A84D5BA5BB700A199553993D711423F203A882B72C73D089A25F92EB3C485F4344D002A05DAEB385191502436EA150880F05548B2B674E666ECD08D23C0E8AE641D76C54D54155353445435555148F1745D3246DEE4047880DFB5B7962DD5E46E4A771DDF935F86361FADADB69ED8DCA2EC0CEBE10D1B8499AA4D7C1A4AA723C19693CB9763FF7AFDE8382CECCE1395C34A588E20C01C4AA2CEA7504159EDBD3CE11918EE81542FF0E695E83E23C0F13471673FD4593292D10A907054D17D7A6618B13D831E29A5F521185283F8E8EED68ACDB51CF2FEF7F81F53B3A89251C638A7333F9E42D0B58B76E3353C755929B13E0CF0FAF60446905078F76B3657FA7745911E3317B5219B75EB3800995E9B2482B24B762B6CE3F9EDBCFF7EF582E5DC1454A488E95D0B2967E648A2BC895B0191B7BF17C8AA78DC16B7771EF07E7BA1C68E9C69268837D8B2FC150049DDA80BDBD005A4413DB7F87F9C26752BBBB37DA4BC876E68C469FFB1DB4AACBCFFC7867708457EA5AB9FDC92D4C993C99B1E5B9600B912183B688C3A1DE1831C74D71BC267E4EB97098FCEC5BA5439D2AD87E2D408B55F1894D8D82F32C5AB223F4341DA271F716BAEBF6D1DFD986198B13F11760948EA7B2663C534795499DEFA43595E04BBBC2FB2ED739A9F12C53209610DE8F6346232E50C74D86A57BB9786215E755E4E3F778F16AC2EC5C14E73C58AA87A86899D73C78BC3EB27C6EBF8F4851689A2EB9CD5DFD11D27C06F959E9C4A3513AC32677FF63A3C4C7FD878E503A2C939EBE209565E518BE007F5DBF9FCE9E28ED7DA23A675193AF73F3F92319374CC710D1A7EE45511D59609346BE8E23CF251A5EFC690659997E0A72B264E1B02B6CF2B717B7B0EB40334BE74EE082699564FB5D5F402148D5DE17E3AF2B76F2C0333B38DA1EC60C45583CB59A6B2E9D8C19EC615CF570F61E6AA6BDBB4F6A880845BD9AD1C54482260D6D7D1869593CF8E44676EE6DA0345BE5EA8B26F39E25D518C2100295AE8108F54D21D7CFD23669E930B9EB9EA768EFB1510C0FAA68F2741C4CDB64FAB54BC91D534645468C1FBF678A0C2204A8CB89F934E28421804E0D30DE76004DAC8FC81FC7E1843B52BBC33701696DECCD180B7E80E2CB3DF3E3BDD5232410706B7317DF7F781DD5636B985153816345A4F75B8FA9B3BF3BCA80C08264D76182DE264EF5DAF76230A09EEA776FF6F354332027D412072937B9B42B7191C2845488FBF7D3DF7A94AEBABD341DDC4BFFE1EDA8964D9FAF0C5FF54C66CD9E4E41C070991882929028FEC512396801C43149B38BC94614272614EB6212B823668C9955C5DC346702E90298555532297AE236B58DDDEC6BEAA6A3A783886033E0E7BC9179CC9E54C1F8D21C1C3386A65A32BA56745D82BA652BFCE6C9EDFCF2B12D44C226A1984561A687F6EE7EF20259A4F93DEC12D29B9683660BD5B838178C49E7BA9925641BD0D21BA1B12344F5C86114A48928DEC1301CD23C017C5E3FBAD7405563A8DE00583E7EFFF87A7EFBD4767A223AB99E105FFDE022A90DA2AB22E7ACF26A6D3D9FFFF19352C449F8079A7D9DD23FF1875FBF16271EE7AE0737B06977036D7D21D90894E6D3A828CDE657FFF62172D2355EDEBC9FEFFEEA310EB79B92765791E3E1CF3FBD018FE2B22FA4988023FC5A84588A494CCBE2A7BF7E8615CFD7A2FAD3A4EEB86C22B2E3CCB9E922B2471631AB348D2F2E1AE9D6AC132DDEA781CF4382FD2962C5DB0FA001F3C52F10DFF6EB146FF18D7753F3C7632CFC316AF90567E5786FE9200952C5FEAE20B7DDF7121945C52C9B3D1EB19ED69D3803B68703BD269DE1B8949F74D31CC76546DFD2B9CEE9CE276769BB4C2C0B27D24FA4AB95D6FA031C78E93962A2E3D08181AC4A72269DCFA4AA0A728CA8044DDB52888BDC74425F437A0B8A42A088A00548C74C82824B2DF635C32C9B38822B678D93FC5FC39BC10BFBDAD9B6FF103B9B06B0550F5FB8763EB5879BF9FD632FB1647A15A1602F15A5657CE3C6C5F824B7212ED30C86A653D7D9CBF5DFF8131BFAF3DD82992AF2B842D75A41B15CAEB1A27951054D109B2C9FCA7BA79470C9B85C2CC7E2278F6E667B5D37238A037CEBCA69B23350D521EA78E8891B0C44A394E76530A2D027F59FEFF8DB36EE5EB193385ED2F520DFFDE4C55C37AF1255D41B1483675FADE77DDFFE078E6690E3B7B87EC978A6560F931A214FADDDC3777FBB12430F8010531257246889F10897CF2CE20B1FBD52A62A9E59BD8B67D71F60DB8166AC5090E7FFF0297C7A58E69B053B44B6DE3B269A62D03CA073F7FDEB79EE859D685E9F6B6D25D22D3ACCBAF142F287E773C58422AE99982781FDB58C9EB7F2880D45D0A98DD6DB12A0ED968D44FF3A3FB53B7CB3BD140D6DFC076467E1FF8A0CA9E3D012B6F8CEC3AFD01054B969D90C7CAA2DBBF484C1D7A13E9BC67ED159E882A0CB7375E3DC5389ECBFD92D9FFDDF2762A8D75D902B4729A237271624DCD7CDA1575FA153E876743711B675FAF3C65154319AF1E5B9D22F302E4D4F5D668654B4139C60F1FF42465476134609C5903A2023B20C2E9B3E8EAAE2610C381E1A431A773FB3815B2E9A21ADA57A3ABA593C71047D11879D8DADCC9E54CAD3AF1CE5570F3DCF17AF9FCFF431E514667BC80E783034C18080BB976FE44B7FDD03A23BCFCD35B86C05416770DCBCAC224D6F05B726CEF080CAF4AA42429110F5ADDDD2C75080FA4DB34B19579E83A378786CD3519ED9DE48576F3F534695F1A30FCD970982BFACDCCBFD2FEE46513C8C29F473DBA72E61628968A2B6B0149D47571FE1D33F7E12C3A392E977B8F38BEF964A79ABB61FE5BF1F7889C65EA18EA74A0307D934925CFE845BB962C9443E75CB52A90BFDCB7B5FE4D9B57BA460D4BDFF752DD5E57EC984110174D4B4E80AC568EF8E73CFC36BD9BCA71DF0C8274DA438E28E495A410653AF58486545161F983792F38609929DE05DBB63733ADB1040A7366A6F4B8076A2BD44EE2C962FC9D9DAA45FE13F3D17ED86D05114EE5ABD87DF3EBB9B1BDEBD88B18569AE9A9DEA70B4CF626F97852DB4A045482791396989727A2FC7D91AB3138F934487E3D1B46001C8FC66A2A941FC6D0F7433D0DE44DB9143741CD84647533D617F11C5131750555E449A139251B274E016AC0E91738E455D4F4091EEB063D803212AF3025CBB702A0579B96C6CECE7D57D8DCC1B3F8A8A4C1FC3F3540CD544D7BCA0EB688A28C6093A9A23B58E1D7C6C6D0B72DB9D4F307B42259FBD7C1A25D93E34D1E8A1298CBCF54E8EF4795144D14F4E8D3AB6E8469486B78A3403C8F55AE4A57B38DA19251277F0C50778F9E737317EC43039A1FCF1C1A7C9C9C8A4ADCBE468284E5B5F9CF5BBDB69EC1EE0BD8B27E25322747675525C94CBF4F1C3A92A2DA0625806861391DF73C8F6F0AB8737F18B07379395A6307FCA483EF1EE1AFA43369FFAC183B4C7BCF8155D3ABBCB967B4744FBEEFBA0C8E6C230D72D1DCDA50B26F2F8EA6DACDFDA40635B9C8F5D359E9B2F9B4C38D48BAA68D4350FF0AB7B56B17177379AD020571CD951292D212C074B8D3366CE04C6CF1ACD85938771F5E4323C89EFF474F3CFE2E843009DDA5BF8B6046862FD44EE9B81D35B97DA5DA6B097B1E40EF4B1B7C882D23F6D4B584889F33D53DBCCD7EE5DCD94A953B8625AB9FBD2290A4D0371767599B2502838BB6E249D781165DAE3FFC2969C284F4C75B8854301D222F8749D0944CA231E0B11E96EA3BD762B0D5B5EA63718225E3E93E155359467AB1822C72C0A81827E970468C1E410D1B465931EEDE58A3993995E3D9CFA5E93BBD6D63160C6F8D2BBA6333EDB83AAC4B00D1F2D41D8DB1AC2B21C72D374A657E592ED17AC62A86D37F9F9DF5F26689A7CF6B2192C9E301255B1D134856FFD65356B76B5CA0E4E51446CEE8DD36F09F70111559A8C2FF470D5DC115497E6F0F8EA5DB4F645195592C737DE3B8382AC34D9C5B7BD56687CF453DFD4C9E40923A9AA2C63CDCE467EF78FADACDFDDCCC4520F5FFFC845CC1A5342A6A1BB5443332A530AA27B7BC0D6F9E9FDAFF2BB27F690996673D1F44A3E73C56436EEAEE79BBF7A9A982F0F4D86CC82BFECE6FC45E94FA4617461D86B47397F723E5FBAF5121A3A82FCF1E1977875472B372CA9E05337CC23141E90CF577D5B88FFB96F1D1B7777A088204040BEFC3A8571818D2FCBC7AC4BE631615C3E57CD28676A71967419175CEAE3CCA2B71E280C01746AEFEDDB13A0AD28E6DAFF20BEF9F6D4EE3285BDD4E14BF12CB90325B32285BDCFD22E12C0C4C38E2C067EE6AE67E9B4FD7CEB86F9C2A44FE63E7B62B0BB3B4657C4CD4BBA4ED9C251E5E479DFB374656FF13083A3E7133FEABEBA6EC7A4B851D1FE2022512516A1B7E930F51B9E9352A5DD6923304AC75153964B8E1AC30E07654AC315438AC9885A44D0F198C3ACB2742E9F35994CAFCEC6A3BD3CB1AB93F29C00EF99594145BA435C0FB0BD23CAE35B8EB2E17037C2012B60C0F5F34673F5F44A8AD34D6268B40C44D975A495E2DC74E68F2997C0AD8A49B12F486B77580254534F88BFAED9C7939B3A08590A694E90DB6E59C0F5E757E1B1E334B5F7C9083A3F379D7C617FA5D832EAB41C3FE1688C50344AA6DF4B7ABA977E74BEF9EB95FCE1E97DCC199DC3AFBE7115A372546241A1BFE1E6828576B548A1F4391A3F7B600BBF7FAA1645A419EC5EFEF29D9B254FFA6B3F5F8EE9CD4195939F28584A5DA4E3E228B62639E68BA61570D9F96379F8B1F56C3B3C40C8D4B879E9703E76DD1CC2E101F9BD347646B9FBAFEB78695B23A801195523849644711087B2D165CCBA643ED3AA035C755E3185012F9A08D11DE1EE73EAEFFDCD1EA021807EB311727FFFF604682114D3B11D73D557B01BCFDC65458E84E6432B3F1F7DFEF750F3C6A7367A67B897CC5424F29CA2A9E19EF507B9EDA175DCFED9EBF1119536514243A1330207BA06E8347509CD2EA8FF5F02E8D40742AAE149FEACD0BDEAA3E7F00E5AF76CE1486337E1BCD1949416539D69E304071202492E408B3FC26F50B7A27CEDDDE7939F25E86C1E5E38D44B7D5F94778D2F6378A64654F1F2974D0DBC58D7475D579490A8AFCA79D0A130C3C3D4615E3EB264148B46E7E0185E9ED97A98C6EE20372E18C7B0805746FBBAE0AB25F8BDCDC118773CBD933B97EFA6330CDE583F5FB9FC3C3E71C514BC4E0455C0BAC03431F5D8AA6485C8158323920F02F1D5844E8650C8D0B873F9666EFBE32B1465194C1B53C2F0FC0025F9695417E530B3A6149F21F2DB1651C7E09E670EF0DDBFACC7A32A8C2EF6F1D5F7CEA2AC28979FFEE9399ED9D48C62A4498016AB2D194C8B71552C9C984D49B6C2973EB098EA11053CFAD4569E58B38F8E7E93EFDC3A8B0BA695108985E598C42216758D5D34754758B7AD83CDB58DF447DDA274667E3A3396CEA1645421EF9998CBBC113918AA822681F9CC566F43009DDA3BF3F60468716F560C6BEF03C45EFC3C986741E12E315EDA8865782E7B08297FF64FD8645CE922358783261FB86305172D5CC0D4522F51E1462DF29F8E4E437F84ED3D36A6941E15F969F1B9337B49FE09B7F7BA530872972CBA89175CB035BA9A69DFBF83BD9B36D1172823B3743863B31CD4900BD0A250285C524491301A0E316944011F9B7F1EB6E610D7023CBAB38DEEF000EF9F3D8A228FC38E1E2F5FFBDB469AE2DEC47798588ACB85878D1AECE6FD73CAF9C98DD3244DACB93FCEEA3D752C1C57C6D8C23C2C2D8E070F0396CD81B65E1E59BB9F075F3C446F30268969237254FEEDE625CC2C139E91A62BBBAA3A38BA9781709448D096CC88CC7C0F9982F121DCC565C940C1D1143A623A5FFDC5638CAA28E3506317ABB7D64BFD8B9A0283FFF8D8C54C2C4B9391B4781E9EDAD0C6277EB512C3F0936E585C3E65189FBB7EB1EC64FCCFBB5F606753D08D78E5F420645BC1107F625D7CE4DAF97CE8AAF93CB5660777FD6D3D2D9D31FAC2511EF88F2B28CBB23085238AE81CB44518E04E48ED418DBFAFAEE56F2B76A0FBD21933A38AE94B67E3D743BC6F5A09E38A3265FDC3ED527DEB698DC10FC31040A7F6F6BD7D015A3C96DDFB30577F15ABEEE9D4EE3695BD541D63CEB7D1A77F3995BDCF6C9F64114D3EF482F0A5F0F3E7F7F3E4C17E3E7ED144BC8897DBAD96472C83550D03F4C5F50407F5389BE3CC2EE2DC7C5ABEC26F44AA1691A688FC82DD52B3A3F6A517E85272F0978E605C868D1AEE77BDF912006D86C3A42B36EF5D348D490519E8C2895AF353DB0BF95E8551D9C291DB6175639C6F3DB593A0919158F24BF16A771345B4F0004B47F879E0B38B5D4686D7CF139BF731A62C9F29A5C3A400BEC8F3FFF685DDDCB97C2B755D71FC9ACE4D4B2671DEC85CB2BC3129A664C44258A2F8A829C46C833D473BD85FDF2AA14EFC1154C16105394C1C554E6E9AC7A51B8A31D1344251C8F07BD87CB49B6FFFE16536D7F6123006F8DA07E672C3B49128AA255923ABB7B7F3F1DB9FC624434E665FBF7936372D1A2BF3192B371DE16BB7FF9D889D8662884E53E12A13271EB1F9CA0D53F9F0B58BC8CBF0F2F3FBD7F0837BD6A0AB7EF4581F8FFCE47AD2957EF9ACB9591137FA562D15C7EBE381A777F1C747F7905590CFB21B17935F964D893FC2B5934B2913097CB90D01F4B9796B5E7FD4B735404BB3D19D77115BF38DB3A2CF911C1EC59B85EF63CDE75E482909D072D9EF46D107FB4C267DF3413EFFDE8B9855918F1D176DC72273EBE195A63EEA07043FD7EBE2CD6B10F0CC629A933F72A936AE9CECD3A7BA1E9183161E8B12396321826D0DD4AE5A415BD487BF78046302266AB84FFAFA49808E8650A261168DAB66E9A44ABC6234349BA0E6A3C14A6798DF4FA1164151636C6857F9FA937BE857B3130A80421759A4844491D24089F4F3AE9A4CEEF9D02C2C4DE795031D3CBFF520372F9DC884924C6C1191DAF0C9DF3FCF1F9FAB43F5A6737E75806F5D33839AC234D7762B16C7D04494ABD3692ABCBCF9203D7D034C9F3A0DD51790E90DBF1966C7BEFD7476754999D5CAA20C297A250B8D8A85D7B6E85302FC74F96EFEE71F9BC18C70EDEC32FEEB9645788C18B61263E7A13EBE79F77A763545E524FD891BE662F77630A2C0C3FCE9A379FAE5033CFB4A2D750D3DB2F53D274B61C6D891FCE7976FA0BEA59DBD871AD976B09BDF3DF2AA5C818C2B31F8E9672FC2AB4425033C6A6B0CC47421F62108D1F49A0A77DEBF922DFB06C82DCBE77D9F7D2FBAD5C3BCCA4CE6570D23CD487EA367BE721B8AA05383F8B737404B94B230577DF9AC35AEC8615375F471EFC758F84330A4B9CF39DA121CDB63045611BBA92CFBEFA7597FB8971B2F9AC19289A57884909088EC84087C5F9CCD4DBD0C38BE44EE53148A34B7927F963779C893A0EC1B46C6295C83CBE54E04B642FBBABF87FD2F3F4B634F8C404E29237C119C50A72CD2093124AF1D63E98431CCAD2AC650A2A86A3A8A1143D1FD2CAFED655B731F1F5F308A919982C29BC513B5ADFC62CD11BAE33E6CD18227625A278E27DAC7DC0A0F3FB8793195E996A4E1B53B5E8E76F533AE20409E5F45B7350EC72CAEFBE1636CAE07DD037346A4F3A1D963983ADC4FBA1694EEEA82DF7CA4B5875D473B28ABA8E6A117B7B2727B1D39E97E0C4F1AF54DED8C294EE3D6F72C24CF17A73CDB4B71769A8C5B35C5A47140E7377FDFCA63EBF69393E1E5E60BCFE3AAF963C8D2FBA51B8A62E95214E95057905F3DBA96155B9BB1AC00A61964E1A4726EB9741607F7ECE4F26553F1797C7875039FCFCB532BB7523DA18AA757EEE0378FBC420C956CC564D9CC6A6EBC6402697AD89DF01D8D577775F1DDDFAF268AA0D72968899E7D6F96C265D72C65D4A842E6566633AB220BBFD01E7DAD77CAE9D3A087687629BC276297B73F408BC59D705BD9F28BB3CA8B56BCD9E8D3BF843EF9936048F5DB73BA09CD037773787047335FFCE32AD233F3F8E0B249D4148BE5BA483A2385FCEB7A4DF6B485E8B184D3B72AA351B9B41E243F7A0EF0FAD8FD0FEAEC7ECB6372A2E7ADEB08120F0539B4FE799A3BFAF0650EA354741586BB880B3D0FD362644136174EAAA128DDC0706CB20C0B47881EE91E36368768337D2CAACC23D788E2D321AC66F08FBDDD3CB6BD9EFA3E9794A863727E652E9F583286C9C5E2FBB4A522DD4BFB1AA4FCE9F935C578B0112CE95575DDDCFC3311D10710A2C8AA196252B6C2B7AE9ACE84121DCD51A52A5E7BC8A6A12FC60B3B1A7878F52EAE5A3A93922C91065058B7E728AF6CDBCBF88A3CCE1F9DC794CA02A65697A2A971A9B35CD7EDF0ADBB9EA77DC0E413574E67D9B4110444641B15AB0BE15C28F44C5C9EF3DEC620BF7F62232B77F710313572FD0A8134132516E373EF5F2A0D6DD3FC5EE6CE3A8F7FFFDE9F30B27289C4140E37764BB1A425138BB866F1388AB314B7655EB1885906CB5F69E2F7CB6B31142D61E61BC7D162CC59369B050B27C962ED053585E407C4F3255B57DEF2F77DAA0F0C45D0A90DE53B02A0E33B7F4FFC95DBCE8EDBCAA07153B22A31E6DEE636B088A68773BDC93E0893EE98CA771FDBC8BDAB0FB06CE604AE59300AD556E58B2596E0160607BB0758DF2C981E82CD90C80ACA94897B91C9C0F75C01F5095A1C27199753A5375E0FD03656344CFDA697686CE9262D9045A13A801DEEC58E9B882EF7B4DC128A0B8B49D354B2149B1B2666CA8611A17571B027CA9A86089606534B73995F16C0ABEB4455832D2D415E3ADC230B6239693AD74C1FCEA83CD1AA0DA6EEE5F7ABF672DFF39BF8EA3573B9694E952B9FA9EAEC6AECE4DFEFDBC8CB7561FA2DB79839C21FE17B37CC65D230034D50E2148596A8CEFE8E28772CDF40477F9C4B678D61E7FE2384A336572F9AC6531B76B3B7AE91F74C2D614665010B278E24CD7079CB5DA6CE1D8F6F24666B7CF9FA79E47B5CFD6BD9491917290D211AE5DA5B39AA8F836D11BE73CF8B6CAFEFC134C554E29095A631AA3483E68E7EE98358599ECFD6DDF5D2E24AE83AA71BB0786201375D3C8EA24C1D251E952DE962C68AC40D1E79E930F7AE3C8221532F82561761FC946A165FBE80BC0C8D778FCA6074BED0E410359204B3E52CBD0343009DDA40BE2300DA1968C2AABD9FF8969FE384DA52BBF354F65214D482C918F3BF8F5ABEE88C2BD7A99C529AC83A50DB19E44F6BF6B2B539C284AA32A6541692A9DBB23025E0376239ECEB8AD21C84B6B045548ACF27D1F9383CBABD226717A64F06BEAF3D432AF9F04482072716A163F7461A1ADBF1682A39561F56A44F1609459EB6C75F424CCF92CC429F15E3474BCAA84C17195D13212BB5B3C3646D5D177E436771753E05191E46E606500D0F4121066483DF6790E773D00C95DA96309B8EB4D113B649F368BC6BCA084617F82523428826C5559DDD0D5DACAE6D6563FD00B190C9F85C87C5E38A18E613EC606121A5D218843DED26773CB15136B59C5796C3DA5D4770743F5FBB6E012B36EC62FDDEA35C33633853CBB35838A182748F8056240FFB6073377B1B7A8888D94541E689FB4C15331AA73C5767CED8620A33F4447D42E795DD0DD43674D3153668EE8971B0BE959E601F31D3E5410BE794CC4C3F63CA0BC84933C8F6D94CAAC8A6B2240BC7162C14C1F470B08496091ABBEAFBF9C3937B39DC1AC67234662CAC61EACCB10CCBF731BED0C792EA3CBC32684EEA20A6F2ADA6F2940F7512A6364AEF901487C4207380F8DA7F23BEFD2ED735E22C6E5AE5BB30E67F0F2567F4B90769D970E76A01B7854DBEBB7C078F6C6EE0F27913B9A0A648AAA3894D134A632874871D6A7B22ECEF8D1376C402DD7D890699AF9CC591383B873A06E62EC7102D16C269D8CBE1C30DC4234102F17EE2E120038E418FAF90605A29961648A4794CDE5D6071F3E41C0A3C31544DC1D0BC7446743635F7B07CDB61AA8665F3E98BA793A65B44E351F27C06217442A6437E513E7F7E7E27B58D1DDC306F1CB347E690EE111AA442AED32379CBE91E4D1AA58A16FC97F6B4D2D33640558E8D6345319C38A6307045A533AA53D71DE70FCF6F6757733F372F988A6599042351B2337D3CFDEA5EC2C120EF9A50C0B491F9CC195D86CF10B436712BAE13CAAA1D6DFCF0B19DB48685C1208445F389A331CC30B971C1486EBD681C9A1996E02A3C62510C229642E780C9C1967EDAFB061818084B100FF87CE465FB18939F85DF2B0AA371B90A911DE08A228D07C26614BFC783138F108ED9BCB8BD9FBFAEDC415A410157DE742139E90A63867958505940AE57979DED6E7AE30C12CE27796C8622E8D4DEA57744049DBC55A7EF08D1BFBD0BA7E7406A779FEA5E7A1A5AE5253292563286A7FAA9D3DB4FA639C432D835FCBCEFD5437CE58157C113E09B379DCF884C11BDB90C32B154B6559581B8C2FAC630077A84FB8AC877B8CB51D169265E4C378A3E45DAE3B5B98A37CB5DBCE95D25E0571EC7CD560FEE377B5DA4EDD878CC20FECE23D4D6EE271AECC71B0F4AFFBD1E239B604629713DC395B694DAC336B9D16E3E7A5E018BAB33F0383174CD902245225ABE6B631B475BDBB960D22899571D0845B87CD638F6B7B4F2FC8E064616A5130C4679EF828954E679F02B96549CD3FD016A5B43FC7DCD2E164FA96478718EF4F07BFED53AD22C8B09855E29D4A4C6632852AE53A725285AF11D7637F7F397976AC9C9CA627C45812C806DDEDF42381C65414D21D3CAFCCA875F6A0000200049444154D4146532B62C0F552810A1CB083A62DA3CB1B589FF79760F41D1FD27F929315735CF8C73614D163FF9E07CC9F397D90E6187620B7D0C370A8F0B072BD1D7628A5597A06288261221702464EAA2529343C4FB62D2198819BCB2A389FDF50D4C1F3B9AD1A5D982C7C18A4D4D6CACEF66CA82998C189EC398021FF347E54870D6456BBE6884392169F6A60F404A3B0C01744AC3F4CE28121EBF550767A099C8DD95A9DDFD5BD94BF3A0F80BD0465D25E549CFE9964031F19E09AD88DD1D41EE786E272FECEB65CEB8E15C3E6F1C99822B6B09BA9410CB51080B011A47A73B62B3BFBD8FDA6E8BB8E6435544AF9BCB99960D0909E0948BD6415A20C7EE47EC7AAC16741C4E8F81AC8BF927D94EFCE1A9922AF2F0426744008CA390AEC49990A7D077643FAB366C23DAD7836E866857B308665660EA4238CAA5A7C989C7B1B961B8CDD563D2C9D54CC92BD6849091F85B35888A3CAEAA60A4A511B5BCF4471D3C5E0D5553C9F4E86479E368B649567AA6E4302B9AC3917E87BB5EDCCF337B3AE9300DD20CB7655B48720A10152DDD3E254A45BACD6D978E47D38504A949D4D4D8D1D84F6B4F98E2D20AB6377473A4AD13D37298515DCEC8C2743A5B1A29CA30185F9EED1E5351082B69DCF55C2D2B76B611C64758E42824BFC3BD3F81BA996A844F2CA9E2BDF3CA5D0EB5E2A7BD3F427A204D4E2A829E18B54C99BD127C7291AF76A406B7C0F0B8D431C112A93085159B0EF3D8C626BAA37EE296894F084759114A0AB3587AF1F9A4E767621831DE35AE8011593E3C862205934EE66B79B69EFB21804E6D24DF511174F296C37764415C986D9E9BCDFFE9DE7356341CBC9014FA0CB26D4251A90B9A5CFAFDA7D8DB1163FEC4726E3C7F02E542F75D2C7E85672171745100D20CA923BDAEB18FFAEE103D118798EA939AC2C20249B6054B6C160B5797EA762CCE1D146527E3DF63B07B2C8F9DA05BC976E6C4F84ADEDDA920F9B5C0ADCADCB1BC3347654C86C38C620F3BB7EEE4E9B55B88F77649879596CCD144FD0538F2DE124D2662668846B9E7DD65142903EE1D081B2BAF079F306E151D78BAA01F0A4710074315943701B6A02B068E6A6328BA04660C1D5DD389695E7EFCEC3E7EBBA681A8A6BB4A4A22272CD6F6B2A53E21391A47D2F41EFCF044F2552104EB8AFD47F1B0E7681F754D1D8C18399CF4DC6C29AFDAD3D24A5D7B3799012F3347E6C922A5AB8C67D318D4F9C6BD6BD9DBEF47F3A4C973298EF826458DC1062BCEE4020FFFEF9A198CCAB5D17583C35D2A3F796015F9F9994CAB1AC6F8E24C86650A8EB7489988DCB9473E070290AD81303ED5D5CF8E2906CBB7B670DFAA8344A30AC2E550083269AAC9D20B6670C1D29968911E46E76BCCAF2A244D17CE07EE126D08A0CF0D7EBC95A3BE23013ABEED37986BBE7A56DCBF4F36985AF9628CA5BF41C9283FEBCD2C2766FA5C80164B5E1109FF78C50EFE7B85D054B09834A6882F5C3D9780EA6A31A8426847A2AAE0442B44342FDDD138477B821CEA8AD2167288383A9668C490FA0D83531183EE72702A24991E49C2EF2007E7E3B44037BF795CBC6910501FB3FF4E08F9C8E388285E38975AE4191A17946A940614D6ACDFC1332FBD2AC5FC4504DA523417E704654121D0A3A0C5C3FCED8A5274332A2DAD36B705D9D212625A4511938BBC147A44BC2D96F526AA21C0589334324DF5A0796C74250D29DA6608FB409D305EBEF5C45EEEDBD28EA28B494380931B891E97DE76530B7A2CC27D375452E2890B0F1239430989D2B8E1A52B14A7F650832C3C8AF1280C2894161753989381CF11EC89648C6C115132F8FB9666EE5F7B884E4B70B53D9229A1D9624524581C312695A6F3B9774F664C81876D47BAF8CBCA5DBC7A6440AAFC79549B456372B9EDFAA99236D71F5359B7A785BD4DFDB4076DB29508375E38950C8F28FEA9BC54DBC3EF9FDD4D5F5095FA2E79393E162D9ECC94A955F8D52863727D4C2DCF255DF88539A2BE212E36B9DA7A2B7092FABE4311746A63F58E0468612E2B5C57ACA32F20F2D2677D13BCE3A219E8D3BF22859594AC9167FD1489B0D1D581932FB72515CE1EDF58C7832FEFA739AC525494CF799545E405340A33D3F07B451E5380AF800F055B1380ACD21D3269E9138A78367D518B7E11652584E8E57906119B4F88AA05409F84AF775CA73D11469F346F9DA0FC258491E4491272CAEE2464519CA631BF340D3D1E65C5CB5B7876CD3ACC8101C29E2C7A8AA6268A820298937DE3AAA03AF0E9C9B9E4F80DEA7BC2BCD2D0CBBE9E18C3FC1E2616A5B16C7436E3730C8A7D22B72CF2B57EBA438E144DB2359B989A260B80938B3DA4193AAAE6E53F56ECE7771B9A712495528094183F916A107F89EB762DA14A7D0EBF7E572901CD211A17CD1E96648EC8A2AE2AF8E85E4C61AF251CC0FD0A9A484158368EAA21F487064261390C1E7F169B5B4DEE5973504E9E8E88DC45FED889E3885CB4580D1065CAF04CC60F2F62F5F6831C6A17FB098A1F98164C2A54F8DDAD33885926AF1EEEE1CE277772B0DDC4527D646A11DE3DAB9205E3F2C9F2C0C6035DFC6D733326E9548ECC64D6CC7154550C23DB30A9CED1A9CA4F27DD10ADF762B5F6BA769473F26C0F01746AC3FACE046871EF5614C18F16407DCE3691DFADB9C12D1EA6159C3D86C7A0303A19C8897CA8284E25E3B0B547BAF9DC9FD7B1B7A51F5F9A972BE78E65D6E852B2035E3CAA852D8A44B2582872D4C95672C1A5D6B045AAE384944432E9EDE61D9331B004E76301F16BA87BAF1BD4443130E1EC21AF3BA1017DBCC894B0EB1201AE9B00478D3BF25A1F79660D2B5F5E4FD849235A301AD3275AB593A98D44449B3CA7084745514C74094AB1204935702B66A14EBEB47024378ECD96D6547511953FBF7A941DAD3199EEE9366D0CC7E2F6EBA67181D087F6387CEFF97DFC6A6D2B66427848E6BCDD3CD0B19C304E0CC30AF3AD459514A42B1C68EA40B51DE65764135005DF435C86681CB2E404105704DF5A90EF2CDA6206AF369AACDFD784C7D018969FCBB3DBEAE9890B0EBB2601DD4D1CB94C0D4D5A6AB98029FE3BD68494982CC43EA3B21C7EFD91D972E2F8C3CAFD3CB4B10D5BF54A9689E81ED4E241AA720DC60ECF278443766139E3C6955298E3274B8B5396E3A7BA2040814CBDB88EEC82F5214B828E98E8CFDEE37CB2F76F08A05343A5772E408BF7B57E25B1A7DF7F760C664F319E4A7A09DAE86BD0C77FD0A5E1C997FCEC6EC7F2C489B484789D43A6C5AA836DFC7D733D2FEC6E2564AB8CA8C863D2F062C616E75051E095CD0AB2FC2F8B72E2D51B649825C133F912BA12A0C9A8DDFD3B193D275CA6A573B72B24F446EFAE5BB4728125A91572D29AA23CBD0B82966D72EFDF9EE5C557B713CDAA20965526B5AF4FD85E97E23E36750DAA6A0A7B9A7E3E35B3840F4CCAC2346D9E3C12E4AEF54DB4C404854E3ACBCA22E5C46C9B5BE7D7505D94C15D6B0FF0D8AEDE04C73C419191E74B8C91046B1182C7A9CED2C9F4281CEDE8265DD3B86E5C0E73CBBDA489DCBE6AB85DE58A22036FDD8EC963ACAA1BE0DE2DFD34F40BB08DA31BC2515C914D311298ED845C68623674D34F8A9B6E11558664DA494CB4D24B50919CEE5B6697E231749EDBD9C6B6237D325217CB2D2B1E45D72C0A32BD9C377638D3A68EA17098900A35199EA95095EBA338C38F5F7F2DBFF95851E1EC3EC02739DA1040A736C4EF688076822DC437FC80F8EE3F21D21EE76C33D2D14AE7635CF04B372FFD4FD844E55ED0ED9AFAA3BC72A89D5F3EB7978DF59D6478BC9415E673D99C6ACAF3B2C8F31B3267E936C02473ACAFAFD00F8A9BDDC0F5358A652E5E253C0693E09EC88D1C67D489A324402D21D2EF8275721B4CBB3B9EB7B66C9BDFDEF70F5EAE6DC4CCAF266E641D97C23BF6E1C1087D62A63ED147E99E2432C08D130BF8C49C323AFA42FC6A7D13AB1A22C445FA22999B7104788629CF36C8494BA3AE2B4297C0D2E48A4102B2E0AF25E7AC44342DA9273109D46267BFE2704985C10D13F3C822445B44677D53AF34899D9067303ADF900C9A27F60EF0A76DFD745BE2DF9614E777437E573A5644FA72D844ADE1585F51621CA59F43625A4C5C9334E1722C32B430AA6A108C2239CD8E6D636830B22C8BCA91C58CAE2CA6B424879C804A40B1284833985C964196474BF262FED708F343009D1A48BCA3015A1A69069BB00EFC9DF8965FE2F49D3D8BACD70DAF28CE154E43CD1D833EF5F328E75CF43F69122AA854710EB60DD0D617A1351467435D072B763648C3509FE1252DDDCBB0EC348A7202146405282BC8425745AE34017449C3D1632965F7D8B2A162502419883631A3F1E7F8E35D3C31EA77123864C4EC724D8E83B350AB4BFC549CE38446C6041089F1932C0C79009BE756ADA525A262F9B2254809B6810BED8949258995493A59E2E7C9CE4B37E214A4064B6A550CCFD088991607FB1DFAE309EC4D9C4B90142CC1F1156A88526E5314C404748AF4C2F1CECBE48426D4E9A45D97B85E995E71ADA544AE789861511550284C536818B0D8D32BEA9FC262CB6464965772940FF798D4851462028005BF5D887927274BD16E243D055D435A29C1EA0EEAB1BFE5E429CF271644E25BB1F0192AB99959E4650618599E4F69491E693E8F6C7F0F786DF2B2FC146779A54468815FC3A722E975018FB04E73574567E288921ABC9C7AAF21804E6D04DFD9009D1C837898F8E69F13DFFCDF08C3D973BAA9064A7A29FAE48FA14F3D87F9EF647E22F1A225B156D83BF5454C56EE6FE7E57D4DBC7AB0833D4D4182111BC3D0D07D3A395969927D20013A918E108713AD2D2E68BB9B649008A8B51D2EF0EFE08B590F5365EF256CE92CEDBA936E2B4D5E45F233C9683919272763E7C1491141B2139B889F05DB4D80A3E5C4B96C5A19934797A32B22FF291201EE5E492A4572A290E792AA6BC92B4C80996B9AE2325964938F9B6291FA2512DC0400BB91B1C8F10A3D1301B871D13822D3406E94ECA6710605CFC9F191054357E3C2E594BB1387885A85B9AA6EBBCC0E29572A24525553E0289663B8632C9833096D8D586212702738C16116809FE430278E993C76C22DE518688B2F58B1C8C90E503AAC8874BF419A17B94AD245D38F62519CA35390E1931D94E9BA60B124925B623C4E103C7AB384D5B97B5386003AB5B1FDD70068F9D2DA44EF9F8DDDBE3DB59139C3BD04481BE7FF04ADF232295F7AB6373766158821F29DE2E5B66405DEC56B0122AA9070A7251C67D59E4656ED6E626FF3004D5DFD0C44E238B228E482B0CC838A3A9BEA46A14923EE2408E66B7DFC34EF4EE67977CA1F0985B5C7C3F3F88F9E0F21F806F2B3C97487B48B7217EF026865DC294E25FF08817B910756E4D25FF8FF698235615B7CE0C209D494E5488A9CD09493544089D1C7F3A4121A251E27D20F12705C6790E426582BF26A1202F92E8F595C872D8B80627F01D0925F2D8B716E87A2EB66ED46ED525AFF58E2DC1D4B39A5481D6B710DEED8B9B9E204584BE016002D605A3407895A847B9D72A2905720181F6EB47CFC04AA7B4F897B914D408955CBF1C9CFDD475CA725CF6B4BA716C7114A243601CD20434CBC3E4DF2AD856FA084643131C9F11F5C5F48145C4FD08C3D6995E06C3FB2271C6F08A0531BDE7F1D8016E9436134BBE72F38C1E604952AB5413AEDBD743F5AD565E8533E235BC4153DE04A979E35A10C1798DC629B28048AB84E808D6B3C2A5F4CA1D0868268DBE989DA74F447E80D9928826A702CA79C04D004208ACF5911887693D6B38BC2DD3F23D0B951024372B38D4CBAC67E9C9E9A8FA37A335165C12B015C09F84970014EB8DD2458BBD8EB829EAA3804445E54152C08F77E04582663E82458CADF25532E890B3996914844FEC7FCC513FF76FF72514F46D072C044A12DB9424870B49379F564149E484027825E773293BF4BD8DF0E5A7D24AF4174F3090075F984EEA4E0AE5092D1BDDBAA2E521C6E047EEC72DC887FD00FA4A8913CDF71F094BF561DA9E1E15515C95B1634BF0C8F815F97EE88C70EE84273227F7D02FEBEBE187CDACFF7197C7008A0531BBC7F298096AF8E1924F6C40DD80D2F9EB34696930DBD225C98ABDF835E733D4A76154A7A596ADFD05BD86B70F34812CC8EBD9BC9B6EE24C56E70C13E991F112F756C00A7FF28D6E127A4F8D49B6D6AC95C8C853F411D2678CB2772AA8F058A83EB7BAF39E071B878839D5E7B11830027195F9F78EF83412D71DC934C8A278B1B8F657812BF749B24075DDBF165CA2016CCB1B03771A583417070C224F9EBD74A779EB84F72184FBCEDE43113CC9CC4BCE3AE33DCEB9314C91312FEC78BC1C99F9FCBEEC0377B5606FF7E08A0531BAD7F39809620DD7F14F385CF611D7E32B5513A8B7B295278E95234D1E4925DFD4F310348468D6E92F5D8EBFCBABB72C21DC477FD1167DF23D8ED5B53BB6B45C558F07DF4C99F76696C12CF12803128FA3BE5C14EB9BA3E19609FC9523CC5E3BDD16E8327A093D8CAA43EC5B8D3CAB1FD4F2264754286E558642C47F778F35062F5343861F2465F9ADB8872266398DA2391CA5E43009DCA28BD83E44653BBDDC45EA230D3B08AE8DF2F3FEBD2A4295D87607C94CC412D5B885A3453B23F8410D3B9DA8E4764C948EDC497546868DBCDEBB18FBE407CE7DD6F7965A18DBA127DEE7FA266559EF5F4CDC9A3C8D31DA9D742E85906AB5321742A1E6129CE1F8366D8B33B34A73BA4A7F9B921804E6DE0FE252368198744BAB0F63D2C41C9AA7B4A0AF4FCD337CD8B923902357F028A2FD73DBDC85B8FBD113577EC391364B2F63D84D3B91327DCE946BCE14EECF66D38FDF5098EEF5B1C094F065AE902B45157A38DBE4EB62E27530F291D2965704AE968A9EF94F2798FEF783C33742A707F83387A505A69F05E838F3438F374F21B1994BE4970CEFFAF44C5A90FFC90607FAA63F52F0BD02E3259523BDADCF853ACFD8F9C5567F054BF80D7EDA7EAAEBE477A99747351726BE41F35BBF2F40C6CC53DF61DC16EDF21EFD56ED980DDB60527DC7ED69B770473C5B3E47F50472C3BEDDB1FFAE0BFC6080C45D0A97DCFFFDA002D41DA96AC8ED88A0FB985C3FF2B9BD075105AC8423E53F7CBBFD5FC4912B41105C761534E79A52212B69BD7E2F4D563F71C74279E7848AE1284F38C6BB1716E3625B302DF07F79E9B830F1DF51D330243009DDA573904D089718ABFFA23E21B7F8213EB4B6DE4FE37F63AE696224AF66FA0F9215B82651FE03905E3530D81EFD6032819679FA5F2BF31E443E73C37233004D0A98DEB1040BF669CE23BEE26FEF23771A23DA98DE0D05EAF1F01D5409F702BC6C21F82E61B1AA1A11178DD080C01746A0FC510409F649CEC96F5C41E7D979B0E18DA4E6B04145F0EFA8CAFA24FFC1818C2B6EA9FBF59B643DC168D1DAA94003D934D3492C4E289261551CBD514A96732B49DDE080C01746AE33604D0271B27A125BDE107D81D3BB17BF6E3F4EC97EDC843DB5B1B0125AB1263C10FD0AA2E3FF6C14387EBC98AB69ED095F86647D5F38713C82B427B0340EC0BC739DA1922337494EC78171E3B422866138C5964FB7514C34B9BA78C3E238FD2FFDFDE79874759657FFC3BBD646632994C7A01124A48082194109080D2150404042C14CBEAAA587077ADBBBABA826B57102B82B00A48D31510842010405A2091165A422009E965D22799F27BEE1D3229A4CC40767F3BCEB9CFC31F64EEFBBEF77ECEE4FBDE9C7BCEB9DE4AE855D2361FCBC2B8AF96D5A0C4500DAFFA0278D7E5C164AA4769553D98E8B32066AD4202B15C8962893F2A255A786A5408D0CADB15EDBCB25A949596C2B7F68AFDD9F54229AA852A54893D11E4EB05AD87C491E871FEE2C92BAD41655909BC4C8590F0D2A6B65629D2A0D623005DFD34908AED074CF2CFCE67E6C2B3361712763C582BAD9E9D1A2E54A256A28140AE81BF56CED3C83B3B7C9A04BAA36FBDED7312E8F638996A60CEDA03D3E185B0E4273B46947A351290282119F81788E35EE43FAB335B7170E90BF0339CB295D874B05D89B80FEA4193D12F4405590BC13199ADC828A8C4F9F42C18D20EA07BE15E04D4654165A96876F71AA102E9CABEC854F482266A38A68CECDFE6D37F39958FA28C53C0A523E85A9386D09AF3FCF4F096AD4AA842A6220279F2AE30870CC49851B7C0DBD3A3CDFBAE4ABA0C8F946F106DD867EF532354C220D1A350160CF49D8C4923A2F98ABFA3565A69C4D65D87E075612B826B2F4261A9B65F522809C0C9C049881E320203BA6979E53BD6D8BB65C7D2D711547A1C326BEB61A546811CE5622D0CF24094EAA2A1098F41CFB01084F9A9788A7967351268C748924077C4C96AE6F53B4C47DEB41D9FF51F8C80E86828AEF4B940E10D51C47D1047CD83C03B920F3DCF6084E4E33110189D731D6DF2BA1FE74326E391E18108F751345BCD5DB86AC06F4989D067EF4158D549A8CCED6FF2D60AE4C8D4F483E8AE45181C76EDD4962660734B6B70F8EB7FA24BED3904D56640CC0AF577D0D8AA334F1A8A8C417FC290C1B1F0F7644767356F6C85FFF9F65398716201D4E6EB2B2AB2B322777A4EC1A8079E819F57DB22DF70D7E2A2221CFEFA6D0C2EDFD5E2741C7698B70807D4637038F47E4C1E188CF8300DBFACB0A20E82256321ACED78239C15912A11FBE0AA220CF921A33164D46884FAA83B42E1F0E724D08EA12281768093B5B694AFA0CDA757C29CFEC38D257338F09CDF4B17A1361CA2B89720EA320602A5AF7D5A978A6AA0F97C9CD302BDD1EB7EFCAABD1DB3E2FC30BAB797DDD551536F41C6A144089396426FBCCA8BE13BD2D89FF04B23BFC0D8984024F4D4DAFDD317F3CA71E8781AC61C7E1A925656CC1DDD3B4D198B63114F60FAAD7D10A86DEE42C929356243E231CC38FD17C82CAD1F1E512AF2C6D6B88F317B4418BC942D4E9469F27096CC62C8BA00C3F2475A157B765CD651D52DD8E03517A3FA06E2DEC17EFCEA1BE1CF84BA48E2879CB8673068F8ADD028DA1E57477C9A7E4E02ED182D1268C738D9925A6A8AF83FD389CF613EBD0230B7EEC773F496BFB77E028907C403FFCCB30979981D3F84B5B1B5148862B10F1235139121EBD92E0A83480B9354831903FD3026D226D0C51546ECDAB50FFD2E7E05EFF2F3CD56917BD4E391EC3194FB724D1041CC4E3C178830B16C3D226A4FA15628C7AB418BE1A5D5E0EE81BE18D855836DC7B3E199BC0CFE4547A133E6DAC7735AD10FEC7E9542352FEBDA508E55663522ACF63CA694ADB6F735438412890F4E77BB0FA3A7CD8246D1180A995D5A8B4D89C7703717689B7B81CD3B47DA0509153BF9FF59E1A3D7821743E71F88BF4DECDAA6CF9DFDD2AEFD2111779E64AE232B7E55DDC67DCA31D547B82BA641A0D77BCDC56DD101981DEFDFAA40B7E42FB318799D0FEFFA224C2B5D05B5A571A57D41D51FFB42E6213CA217EE8ABDF9B20424D08EFDF693403BC6A9792F530D2C3907507FE0A5FF5A7DE91B19E67FF31A61403C24C31642E837B0CD14F596029D2F0904735F9C91F7ED70A8CC8FFADCF850F4F453C26CB62231E512EAF6AFC42D255B9A89F3173ECFE2A22C02CCB7CB1ADB57948A84A8B758A1AC37A0A7F10C2697ADC622FFB721947BE0AE583D8234429CDDBB0D83339743632AB18FA54E20E52F90ED9E77D9CF6254B033A57855552B826AD331B5601982EB9A9F1C5F2CF5C78E5BBEC41F4704DA45B635813EA388C125594F4C285B6F7FE62B811FC1ACF6C5A3C383B8CFBDB57631BF0A9BBFDF8CB957DFE61F3386CCE73EA2FC67EE5B7654A09BF2679B89CCBDCF8ECE62FB03D1352978A8E843FBE3D94A7AA9DF8BB8AAE983CF67F7EAD05E1D752081EE8890ED731268C738B5DA8B1519321D5E04135F4DDB0E0875AF2600441288639FE22B6781EC7A9F6E531E6D09F4798F180C0BF744400BB740D36BBBFB2810EEABE41B55ECC081CFD6ECC4942B1F40672EB2773309C4F86BE0125489D43C9A22CC478101A16AF86924A8309A7128C380ABA5B5A8AFAD42B54506854C8229B17AD4D75643B3E72D44571EB66F5E32713EE431025BB577A346A4844A2A420F3F056EEFE3CD43EC58D8DD85DC4A9C3B9284D1856B115A77C93E0EF67278ABC797B86B803F6E8BF0E23F6F4BA0D3E47D31D1B0DEBEAADEE639153BB49331384C87C76E0B6A35A263E5AE73084E5E82D8AA5FED02ED61A9C0AD3721D07D823C302AC20B4595F53C9C30EBEC09DC9BF697662FBF75BA0770C0E356AC7A38FAA6A33A48A01D530A1268C738B5D9CB5A990373DAB7305FDEC153C6D941B53CB5FAF7DC58BD105D044F4117068F80B8EF23FC40828E5A7B02FDCCA860C4863AB609F5536A1EAAF72EC7C8E20D4D56BB32EC578FC216ED0C683C9898DBC4B4A79FA2D9B0982F78EB89627E502C2B783F2E4A07D1A58350EE5F0C7DDD55DE97B91AD8EA7699FE2928140A84EAE4981AAB474F7F8F66F1D4CCDD71E862092EEF5A8DA1F91BEC1B94B54205FE11F43EC24303F05042203FE5A42D81FE453D01B71B3622CC6873D3303FF412FF9720D387E0A9512108D2367713B150BDE5EB133137E79F3C72833DEBDFDA7BA033156278C5CE1B5E410F09D360F6107F782A6CA7FFD4E45F42D6E78F416F2AB0F3DBAF1A8DEFBDEEC59B3322E1EFD976986247DF037EFF9A1AAC5A95823F3E7694775FBD7A14A64FEB0589A4737CDC8E8CC115FA904077A2952CC5A7613EBB9657C863F530D80AFB77D54452B05A1BAC0E8864E45208A48E096A0383CE12E867971DC0F3597F6AB69197A28CC78F5E335129F7C313B705A37F68EBEE8186B1B07866A3C9761C57F5B67721485E6B375595508D0FFDFF863C712017F0FBE3FDDB4C74A93359F06372367CF6BD8DA88A43EC5447D40964F8D26701323CA23131468FA9B13EC829BBDE07CD5E02ABF44F20BE722FC618FE0D0F8B2DBAE5B06A3836783F88F89E7AFC2121D03E2E16FBFCD1D6B318F9DB2BE85297CE7F7E5C19CF5F4A432B7F41424562A7097459411E5296BF8A986A9B80B296AA8CC35ADD83981C1F8E097DBD6FEAAB4D02ED183E1268C73839D58B9D7BC80A2F99CEFC0B5656AC88152A72F126F0898128E4560883D9BF040824ED0B606BD36D4FA01F1A16803E81CDC3CB989B4229634761358FBFFDE0D335989BFB8EFD116CC5FB8DF7A348560E45989F075E696783ADE5B8AE9619B940EBD236DA3FCA90F5C227BE7F419D508E3BFA78DBA320DA32E1EED3F928DFB302830A37436EA9814920C166ED0CECD38C45422F3DEE89F3454955FD759B844CA057FA3C8900731EA6172D47B031833FC220F2C23BFE6FA0778F103C39B2B1A6C9A5A26AACDBB20F0F5DFA2B77C5B0D573A27A029234E331CEF0038675A24057E667E1DCB23FA39BF1827DDA49EAB1F8413B0B63FB0674C8A4A3AF3B097447846C9F93403BC6C9F95EA66A58F28EF2D29E96AB0760C9DE0FABB1D4F9FBFC3F5F2150FA4018780B449173210ABDEDA66A6BB414E832910E3F7B4EC119652C220294D0B5082D1388C4080BF641BFAE5ECD328D535614000018B149444154E27E78F7650C2FDF6627C3922B56EA1FC329457FCC1FC9E27E3D1DA6969653C105BADB95CDF66B0EA846F28D37AB58863BFB7A63DA80C650C1D66E7CEC5219D2776F40FC956FA0B294DBE29055A3B0D96B167A87EA704F9C1F3F65A66514071768DFA721170B3035FF0B44571E811066B0B8EAF55EF36089BA1D4F8DE96A7FE47707B3E0F9EB12C41912F9CF7224A1D8A09B831C59379B4097778E8B83B96E8A2F9F43EDD70F43696974D7ADD13D8C43AA044C1BE08F293719C94102EDD8579404DA314E37DECB6C84B5221B564306ACA61AA09E09F76198D3BE81B5AE79B6DB8D3FA4F3AE64BE65E657E6E54CE53AB0D03996B2CD6A3D4374737EC79602CD36F58AC5BE2817B15864C1751B4F15224F9CF31D8DA8F8040CEEEEC5A331583BB8682E7AD59EB44F3A57128CF5BAB9B828EB85A5F745D8FDA88E50399651C2053A2A7FBBBDFB6A2E44C3E1AD9261D6205F0C096F5FF02F1454E3D09EBDB8E5EC07D09A8AF849E1A714B158A97F027EDE6ADC3FD81F5AA5A855815EE5FB34A2BAE8A02E3A8D11E73FE469DBEC2F824BB21ED81FFE38C60E1F80C86B7F59FCB8760D62CE7DC1639FD9EA394935063B3577422E93624CE9460C2EDD71C32E0E1631323652875A9305E72FE5A14FD60674496FF4F15F968563ADEE21E44842F0F74961E8EEDBDCB7EF08EBA67D48A01D234602ED18A7CEEBC5E2A98D06580D9760C93F064BD62E5872F6DB4F37E9BC07397727A1771F08BB8E85387236A0F4B3F997859DBB61E36CA2044FDCD04E87A8CF38CC880B828FDA369E33AF4F84BFC9B6A1C7DA39791FB0641626D45FCEE905A5B49D52AC2DB01CB958CC05BA6FE1CFF64F3EF57D1E698A6874F5566076BC1F7AF9B75FEC29D760C44F49BF21E1B7D7A0AFCBE5029B268FC6329F67E0A154F2CDB7602F699B023D2E360825A5E5884A7E13BDAA52F969E02C1264B7D714486F9983E9037CF90A3CFBCBC7A1CA39C237130BC57EDCCF9D270902D34AB6613AA0D8B9303BF617CC2ECD44B048120F99107E0A337415E98828DE037FE365EEAE6968EB74F370C86338EA0552AC7CB0F74D178A228176ECF79304DA314EFF815E565B46A2B90E96A2933067ED8535FF082C45A7612DCFFC0F3CAFC52DD90100BEFD210A1D0551F72910A8436C2BE4FF6079506705BA214E57DA7D08EE8BF747E0B588868BAF8D6D165EC7123E98406749BBE18B3911372DD05FEBE723C5231E11FE4ACC19128010DDF5A9DB4D695E2EAEC59EA443B8E5D45BD0D5E7F31574B2C72D60A22653D8043A54276B53A06FEF1F0C9D4288EC7D9B303A7BD9B5CD4F014E7A0CC2B1FE2FE39E41BEA8349AA15AF3006425369FF0554908DEF37F0D66910C7E0A2B4614AE775AA0D98B84F9CB994B8635E6E967BE6D96D8C35E020D8D25F92CD7CFC709C54048C5222C9F1771D3DF4F1268C71092403BC6E9BFDACB929D0473DE11A0240D968254582AB23AE5F942EF4808BC7A40DCE76108030677CA3D9DB9494B812E11EBF1A3E74C1CF318C2DD1B2D4BF188AC661E151115AAC37D83FDECA15D4717DD8BF0DAB3F647174802C0B2E6CECB23F1F99CDE4E097472BA6D05DDA7A07105CDA222767A4E4254A00AF386FA77185296965B8594DD3F63C8C54FE0692AE1598B873D12B0D16B36E44A0FDC1FEFD7A1402774F7C4F25FCEE3FE944721BF56F8E8A4A23FD687FE19B3E2FC915F548ABE7B16C0BBC656092F4BDA15EFF8FF036291087E4A0B12F29D17E8B66CC75E306C0ECC05C53228F7AAC6E1B07A38CC120FF8AA25786B5AB833666FB52F09B4630849A01DE344BD3A81409B511CCA18EED36C88C16DF9A861DD3D798C7443C9CBED6F3D83B8AAA4C6151E8458A17F12BF29073ABD823E9D5DCE053A3C6B8BFD7E29CAC158E3FD07E8759EB82FDE0FD141ED47AC24A515A264CF2A0CCAFF9EC7263337C05AEF87705439147E1A195F41EB55E27657D07744EB702ABB02A1DFDC09519D2DDCEEA2AC37BED1FF1152AD2F220DBF6254EE2AEE7FB66D428EC446DD3C0CECA286B7CC0C6DCAD74EAFA0596A3AF3F3570B9B47CFE48B0371411E89C3AA04B0841DC63D4023C59CA1FEFCA5D51965B049A01DFB852281768C13F5EA04029D1507FDF5E20F31A96855B311FDDBEB1EEC538DC6C773FB3AB58266892B55DBDE85FE6C63981D8B8EF8C0FF555EE3994560C475B355836BADD59BADD872F40A3CF7BD87E8CA8360AB7EA350CE57B7F9E2009EE4C256D09E8AB63709998B8309342B075AFCDE4428ABF3F8A3988FF827ED349C500EC2F4929588AD3EC4EFCFE2AC3FF17D0E59CA081E8FAC1699519FF485D302CD7CFC3F6A67F2BA254D1BAB3362821816A188676E0678CA3073A02F58B6617B35B99DF98A90403B468B04DA314ED4AB1308749640BFFDAF5D9891B1101A73E3B164D9D2AED8EC390393A6DC81E890B605B5E534AAEBCC28D9BE14D263DF72DF2B6B4C0057E8E7E38A672C26F5F7E31989AD3596EE7D2EB71267F6ED40F485E57C839035B6C1F762D0A75CE00677D370F70C7B4E6B61762C8AA341A059ADEB759F2DC6C8ABABB86B87B919CEC9A2902E8F405CD53EF8D6DBEE9FAA1CC4135C82F52A5E08E972BE01757B9D17E8A6B538FC3552BE19DAB4DE365B392BA54244F87BA0A7BF1252AA07DD09BF05CEDD8204DA395ED4FB26087496406F3C9809E9C12F704B5963681C1BD679791476F57E112F4CEEDDE64AAFCA68464A463182F54A74F5B1B92E4EEFDE02D9FE8FA1ABB7657EB2CD33B6E1B8CEFB21C4F48FC1CCC18DD97C4DA75F60A8C5FE7D071172F22B84D5A4D937D65826E28BC19FF00DB53B63BC79F5B7B652BD5B0AF4A24DA770D7E917E057DF18A5D2F4994CB417F9BF89324530CF729C31D0173B4FE4DEB440B74CF5BE09333B7429ADA01DC244892A8E61A25E9D41A0B3043AB7AC16ABD76DC1AC9C0FA1B0366669B24DADCFFC5F44BFB8384C1A1074DD908FA697E0646631B417B6C210311953E242789D8CCD072F40BF67217AD69CB48B2CF323335FB479E8C3B863D8F5C58158AAF885F3E9C8FFE96344180E354B3B672E8355FAC7D14527E7197751811E0E0BF496947C54EEFD0A634B1A63909B4E8455EAFBD4F72F50AB5578747820BFF78EDFDC53A0338FE663D93BC770BE85A5C57231A6BE3416D33B0A363118B0F5BB935899D85856F5AD1563D0CDA3A3F0520B3233B3F0F1375578F0A9484436F983EDC4D73BF0C64FED1FF220556AF1E8BB4391A0EFF8B78A56D01D33A21E9D44A02D813EA78CC1A8DE5E3CD2A1B5D6C3578960AFC6CFEACD16FC78E02C5447BEC2A0F2DDCD2E2994F8E357DD9DC80A198750AD185DFCD4FC6CC122430DB4977F41CFC2DDD0D417E3C3AEEFA247908EFB70F34BAB91BBF73BC45D5D0B0F73E3692F2C4331D96F32F2226620CC4F8D10BD12ACF6467E791D2E6415C133F7286EBDB4D45E898E0DA45CA8C552BF1790270DC6A0AE1A5E729495F2747405CDAAC9BDBF26090BB25FE0FEE6966DA5F71338E63118C13A055E9FD48DDFDBDD04BAB622137F1F73085B4B8DC8BC508696E7F3088402F41BD70B1FAD1CD7AA08D657D7E3B34736E29B320D6E9DD20BD3FAAA80736731FBA533903C380EA75E0B6BF71BBFEBF5B57866A710C1B70FC2BAE7BA41CDEB4B55E3E7D7F7E0B92F2EE2C4D5B6AB5AF67E7C0C563DE08F6ED13A783B90F74502DD49E243B7E998404B8166E15C6C43CD2C10F3129E2C9BB0B596E47337EAFB4EC1A47EBE50CB6D31BBC67A334E5FCAC7956DCB30BCF8876697311F729D5006E632158984B058ACBC3CA8D86CE42B5D9685F7B7A025B04A143C957B528C378A0C5558BB331513CFBDC12BC33534B6923689E4FC3E7C83CC6A85D90A98CC16882CF5CD4E47F9513B0BC714F13048BD111BCAC439080AA92DFBD1518166BFDABB4EE5A3F097551857B4A6D9BCD88A9E654C560A35E8E1ABC0AB93BAF1CFDD45A073362562F8B399C0E0FED8BC24026D2D40CB3727A2D76397A18E0EC193AF24E01F931BF6102AB072E646BC711C48393C03D55621942A295432216032A1C4500293C40BBE9AD657D0A3466D42E433133162D3A778F9B81E9B0FDD839E0A9B7D4F9CB022506F84556C81E16432E21EBE82E7BF9C8A075A943A97A8E4F052767CE66483E149A03BD615EAD149049C4D546978ECBFB5B3B0DF6B02660F0D44420FADDDBFCCDC0CE947F7C2B8F34304D465F38DB58E1AF32FB3C35E5F095A0CAB588A89D1DEFC54159B881AF1C996542CB8381F42ABE5BAB3FEDABA377BD1B01AD41FFB3C8FABD250BEB1F6CEF4EED02A6DA53B9D1168D6979D5FF8EEAA1D987FF535FBC625FBF932FD029C50C64220102236448567C7DA4ABCFEFE05DA8AEC1FF662FC82B3F826F501845D48C6B0B864844FEE8EEFBF9F709D592CC63AFCF4EA5ADCB94E8A67FE391A1FCCD0C354978337E276E0ADB42ACCDF361FEF8CECE89BD2F8B9C564C191CF7E42D9E4788C0E16E2ADC1FFC206930F528EDF7BFD4D2C16AC7EE4337C103E09475F6C2C74E5F8D39AF72481BE5172749DD304CA6BCC28FB6832A435C54E5DBB597B37F669C66174A4370F7B6B7ABAF4E18BC5D8FEEB694415EC44644D2ABC4D05FCF8A7968DC5FC321165A16F7BD5E378CC345B8D4FE9E783F17D74F6EE39A57558F7CDB74830FC0CBDB980C735B7753E215BA99789BD705A1E8B7DEA512812FB412814A2979F122F4FE8D26C082C9C6F7DE2714C3DF322AF1BCD5E14279503F0ADCFE3B8E35A985D43040573A3ACDD710C61BF7DCAE7C41ACBF8FBC8EF65644AC3E12113E381A10118126E737E269ECC43D5DE151850B40D4A4B252FB67444351CDF6BEF6D76E415CB78947E3E11B25ADBA9312C4D7C83D71C9C9347E17F7A93D05C84AF9F388CF484A17879A60A079EFF166397D461FAFD43F1DDF23EAD88A419A95B93307041019E7D7B34DE9EEA8577EFDA8A85BFE461E43B7761E3230E387FF95D2DA82A29C3D6A5C9F83C558EA5EF0F4278F96F18187304C27E3D91727C7C8B675B50FADD76043F7A05DFA5FD111303AE7D6CB6C02410F08585B3E7A293403B2515D4F96609ECDEF26F54A6A7C068B2F0F3FD1C692715B1C890F7C29D7DF598D6DF87BB431A1A5B451F4C372035B304A82A45B7F4F5F0AACBBBEEDE9542159255C3F87D2C4229BAFA78204C2FE7279E34F56FB3FB7E989805182BE0517C0E3E85C7E063CCBE6E98EC7C42162F7D54958052B11E569104DD7C943CD36E5A7F5F7BDD90860B0D3526FC7CFC0A7A64AC4775561AEA8552B04CC1E3EA04DCD5DF0FE3A3BDED616C2C1EFA6C8E01670F24C23F63339F0BCBBADCAE998272890E51412A3C3D2A180A89ED4FE5333906649F3A0ED5A5DD4059362A042AFE0262E7298EE9E3C7E3B0596363C8FC6131AA2F9FE46E1F1666B75B339E8F7F780F2D2F0CA5B956B0DF11BBDC4C1FA7A2380C065CAC9221D0478E334947F0D7F18791332E120BFE36140F0EBEBE6893D564C2DE553BF0F02639DEFDC740C48A4BF1D81B69A88C08C7B697D80BCE011783C984D2A222ECDD968D9F4F8A30677E6F0C0913E3C86B6B11FF4619864D4A40D2C6986B08EA9092528CFC82526C7D7937569C1360C3868695BD18BD033CA0EEA9825A2E4647DB8F2D999240DFCCB78CAEBD2102EB930B70B1A006D5751DBB241A1EE02113F1F303D999846DB8AAB9006D3856809CB23AF004943A33F76BB3F70013248D5CCC8FD50AD6CA30A99F1E7A55DBBF2E6C157BEA6A150E6794E37C7E0DAFE7CC0AE637D4A66E78B7B07BB0534FFC3D259810AD6FE6D6680D0EDB045CB8F5326AEA6D1B80BE6A29A6F6F741DF60765A4BF3F55546610D561FC9479EA1CEFE6C768C1713D286BA244D9F919C59819D674A70B9C476282D2B1AC542F1D8BF86C69EBFEA601E77E7B0D86C9140C0398C89D421AE9BBA5959D71B32AE83173925D04DEE19ABFB0CE7BC7DF1F5F6A998D146C679EDD56CBCFEC42F502E988CA7038AF1C6B349C8888BC3070B2210AC6A5F9C57AC3803639D19A8ADC585D3B9C8D20461648F86DDBC1AEC5B7C04EB2F8BF0E8EA795832C9F672284DCFC2276FFD8AF7D6E4A3B44A8D898F7641A3734389BBEFEE8191236FEC8003126807BF50D4ADF30830F1CB35D4A1B6DE71816685FB59324553F7466B232AAF35A1A0BC9E0B50598D893F83EDEDB14367BD144CA09998B28D21C72ADE95569B905E5083C2CA3AB0ACC1B26A5B0815BB1FBB878F5A8A102F19BC55920EC7D630DEA399155C1C1B049AA5B9B7362FC689CD23AFDCF66CF67208F751B4591B84ADBCAF14D772816652CF04BA9B5ECEC7D6B4B128942CF602339AF93D994077F196F339FDB7DA0D09B4211F5E5DB761ECA2F1F8F2317FB49E8E54839DAF6EC1A2CD22AC39743B2EAC3C84057F3D813F7C31110F4C0E477B8113977F4945DFC9FB515E757DF44C532E72B516EFFE3A174F44D97E5A9C568C038B93307F7536AC4313B06F5B3F3456F1BE39A224D037C78FAEFE1F26C0048B7DC18542F095A1B3FEBFD6A656516BE22B72994808D97F51D0FE8731DFD0D09C17E85A1C782F11E376E890B271287AB45A1EA51A89FFDC83173ECE44FFE7A660C9340196FC3511AFAC2CC1EAEF2762CAE4F68A3C95E1C0A622641973F1E97DA938DBB52B9E59D4B399D0161F48C5735FE643A80CC7A6EC0918DBA40AED63776DC18AD47A7CB4711C1EEDDF7E795A678091403B438BFA120122D029049C13E85A1CF8F4573CF7561A5EFBE17E8CEED7CA010AC55998F77436C63D158A6E56118223FD21CFBC84BF3FB9054B932C58F6FD44CC991CDEC2075C8375EBCE23C5A0C5FCFB03A03119316DFA16F49C702B1E1CA142AF18359A9691DAF2CC7798F9691E4483E2717CFF6074BF462273572AE6BE9F8B898F0FC01FC7FB40DD8929F124D09DF275A39B100122E00C016704BAE4502A1E7AEA30361FD7A3A86812B4DAA62E9B726CFEFB212CFC3C03FF5C3309838707E25A68322A2F6661D19FB7E3CD1FABE1A9EB820FF68EC6EC28158475F5D8F5F6F798F79901C366F5C2CBAF0E45A44A8C948F3662E4F1EEC8FE32069EADE44CAD9EB71A0FAF2E8464E4309CDA3E00216CC2E585F8ECF9BD7875BF0ACB360DC7841E4A34388AAA2F5FC5C7EBD3A18B8FC1C3C31CAF0FD3942309B433DF2AEA4B048840A7107058A0AD65F8EED9BD78FEA34C5CEE1B8D82DD09D0AAD8FE81199BB79CC6CC59FB20888FC486C5F19814D3BC6C2A5087D4F5C9F8D39F92B13BC7DA2CB2472291A2CFA8287CB86A3886EB01EBB163E83FF32866AE7F002FC4B69ED1BAE681D578E8DB424015802F5367E0BE50C0907A16CF3E9B84157B6A9A1C710088C44208BBFAE1C94523F1DE7447C3FAAE474B02DD295F37BA09112002CE107058A07372B070E111ACDCD5582FA3E1393D8786E295F76F439C57FB4F4EFFE9285E7AF70C52726CFDD46A298E25DFD3ECA2D3AB77E3A98FAE60F1CE7B10A5697D2B3177F31E4C78F90A4CFDC2B0F0E918DC3940CD725A7174E551BCB6341DE70DB65BCA3CA458B8F51E4C6A888376064C8BBE24D037018F2E250244E0C60830815EBD3A150B9E3DC66FF0D557233165720F4824CE460ADFD8F35DE52A126857B1148D9308FC8E08D4D6D6E2C08173F8FE87743EAB39B363111B1B4C024D2BE8DFD1B79CA642045C9480D168446E6E2ECACA6C872E04070743ABD5422C6EAC5FE2A253EBD461D30ABA5371D2CD880011708480D96C465555159850B3A652A92097CB21682B4DD4919BFE0EFB9040FF0E8D4A532202AE40C062B180FD634D24129138B76234126857F826D318890011704B0224D06E69769A34112002AE408004DA15AC4463240244C02D099040BBA5D969D2448008B80201126857B0128D91081001B7244002ED9666A749130122E00A0448A05DC14A3446224004DC920009B45B9A9D264D0488802B10208176052BD118890011704B0224D06E69769A34112002AE40E07F5EA05D01228D9108100122E02A04042515750DA7D2BBCA98699C4480081001B7204002ED1666A649120122E08A0448A05DD16A3466224004DC820009B45B989926490488802B1220817645ABD198890011700B0224D06E61669A24112002AE488004DA15AD4663260244C02D089040BB85996992448008B82201126857B41A8D99081001B7204002ED1666A649120122E08A0448A05DD16A3466224004DC820009B45B989926490488802B1220817645ABD198890011700B0224D06E61669A24112002AE488004DA15AD4663260244C02D089040BB85996992448008B82201126857B41A8D99081001B7204002ED1666A649120122E08A0448A05DD16A3466224004DC820009B45B989926490488802B1220817645ABD198890011700B0224D06E61669A24112002AE488004DA15AD4663260244C02D0808DC6296344922400488800B1220817641A3D190890011700F0224D0EE61679A251120022E488004DA058D4643260244C03D089040BB879D6996448008B82001126817341A0D99081001F7204002ED1E76A659120122E0820448A05DD0683464224004DC830009B47BD89966490488800B1220817641A3D190890011700F0224D0EE61679A251120022E488004DA058D4643260244C03D089040BB879D6996448008B82001126817341A0D99081001F7204002ED1E76A659120122E0820448A05DD0683464224004DC830009B47BD89966490488800B1220817641A3D190890011700F0224D0EE61679A251120022E488004DA058D4643260244C03D089040BB879D6996448008B82001126817341A0D99081001F7204002ED1E76A659120122E0820448A05DD0683464224004DC830009B47BD89966490488800B1220817641A3D190890011700F0224D0EE61679A251120022E488004DA058D4643260244C03D08FC1F8024C458BED69FBE0000000049454E44AE426082 WHERE `app_id` = '2'; -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000001680000012C0806000000EE2C29AF0000200049444154785EECBD09985D577525BCEEF8A69A354BA5C91A6DCB039EC0536C636C631308B6434248483A2140C3FF058281907446487F49FA4F87A4D3FDFD9D4E826D861092302401023433D880C1C8181B5BB6065BF358D39BEFFC7F6B9F73DF7B552E59922D4B25F994292455BDF7EEBDFB9EBBCE3E6BAFBD8E05F3652260226022602230272360CDC9B3322765226022602260220003D06610980898089808CCD10818809EA337C69C96898089808980016833064C044C044C04E668040C40CFD11B634ECB44C044C044C000B4190326022602260273340206A0E7E88D31A76522602260226000DA8C01130113011381391A0103D073F4C698D332113011301130006DC6808980898089C01C8D8001E8397A63CC6999089808980818803663C044C044C044608E46C000F41CBD31E6B44C044C044C040C409B3160226022602230472360007A8EDE18735A26022602260206A0CD1830113011301198A31130003D476F8C392D13011301130103D0660C980898089808CCD10818809EA337C69C96898089808980016833064C044C044C04E668040C40CFD11B634ECB44C044C044C000B4190326022602260273340206A0E7E88D31A76522602260226000DA8C01130113011381391A0103D073F4C698D332113011301130006DC6808980898089C01C8D8001E8397A63CC6999089808980858E3D53033613011301130113011987B1130003DF7EE8939231301130113018980016833104C044C044C04E668040C40CFD11B634ECB44C044C044C000B4190326022602260273340206A0E7E88D31A76522602260226000DA8C01130113011381391A0103D073F4C698D332113011301130006DC6808980898089C01C8D8001E8397A63CC6999089808980818803663C044C044C044608E46C000F41CBD31E6B44C044C044C040C409B31602260226022304723F08203F46C7679C69D698E8E06735A26022602732A022F304067C8019A7F2A60B6D0FDE99C8A853919130113011381E71981939B7E9E5280E695139C0D403FCF3160DE6E22602230472370460134F3E5677E9DDC4B98A3F7C99C968980898089C0F38CC00B9C413FCFB3336F371130113011781147E03400B4C99F5FC4E3CD5CBA89C0191281B9B11BE0A90768B96E03D267C82835A76922F0E28C40F6620268CB40F28B73949BAB361138F322309772C8E79541675906DBB6C13FF32FFEDDB28E35FB1CEBF767DE4D35676C226022F0E28980C23E0B699A8A74F89890F71C43F39C019A20CC9323400B6991A60A98F9DD03D8DDF3228813980D383FC77B65DE662260223047229027A7291352A21AF15070EFE4D2B7CF19A009CC6AF650279703B482DFD94E32FF9901E93932C6CC69980898083CC708CC640ABA007D7221FA3903742FA5E108CDA1C05A65CF33698E6E0F61061B982304FC73BC37E66D260226026773048E73919F53B94C543BB42E935536E3CDCA229C78D09E3340E733084FCE751C3921C7B68497C9B2A487C8D099B32C054C17E189DF22F30E13011381531D81E3C9217B315051BE19923483653B278DCA7DCE009D531B499208403373F63C1BBEEFC02615DD7B8A5D238E531D67733C130113011381138A400ECEC76293C9F0B204C76499A5B7284C104429D2EC2865B8133A0BF5E2E705D0E4A109D0CC9C799604E742C151E07CACAB7B0E276BDE62226022707A22D05B413A3D67700A8F7A9CB260B2BA560F4087618C56104368DC932486785E006D59E49E359D91A528F80E8A454F21BF01E85338A2CCA14C049E430472AE75B667558B81B324933431D5A065F39FCFE15067EC5B9E858FCE33E73C7C4118A31D241AA04FCE153F0F80EEDE5DC52CA7F03D1BC5A2AFE60E03D027E70E994F3111782122D0C9123358B311AEF210A7C8122AB42CC4AE7AA4DD0C7072CAB217BC7215ED0B71AEA7FB336705697DC11AE738810561827610E3644E612711A013F89E8352D157E134007DBA879539BE89C0B34740837467B56BA54A61C56F0BA2EBB5997A25C0F65D357CEB5B4FC1B3AAB8FEBA8D58B162FE741C32008D3639E8203969F4C6F3E4A06766D006A00D1E98089CB91160A52B013292AAB60268E682291005C0273FB305EFBEEB6E78CE5EFCEFBF79076E7DD54B857F7D517C1D67066D00FA45311ACC459A089C8E08B0E225902C009DB31EC4A6A0017CFC1F9EC45BFFF3DD70DD27F00F1F7F0F7EE6B557C116AEE345F06500FA457093CD259A08CCE90810A0BB3C05AB4A5112C3B71DD4AB363EF6D16D78E73B3F02CFDF820FDDFD9BB8F3CE2BE1BA5A4F3BA7AFEB249C9C01E8931044F31126022602271681692A0E0DCE92455389C0D2BF238A8D46CDC2DDF73C89BBDEFD2178DE93B8F79EF7E08EDB09D08A0A39EBBF0C409FF5B7D85CA089C0DC8A80566948355F78678D42CCA22DA5E54D325B8A84CD3A70CFBD5B71D7BB49713C897BEE7E37EEBCE365F00C4077C4105471180E7A6E0D7173362602676E04048FA938A072C3EBAAAEA4CB2C45AA6D1958371480FEF056BCEBDDF7C275B7E1DE7B7E1377DEF15203D05C3EF4C8EC0C409FB98F8339731381B915810E40338376956423F767B032C11D31D2D4007DF7BDDB70D7BB3F0AD7DB8A7BEF7907EEBCE30A03D006A0E7D6983667632270D644A0C3AB66E8B409F618E864560AC2B4953A68D40101E8BB3EA601FA370C40CB146632E8B3E6793017622230E722908334B3E719FB6964C24393E870D0A839B8FB1E02F4873540BFD3501C06A0E7DC7036276422707645E059009A4D2B29E8B363A3517771CF3D5BF1AEBBEE81EB6E371CB48C0293419F5D0F83B91A1381B91481993E1ABDD60C9AEA105A3A059A0D521C4FE25D77B148F814EEBD8719B4E1A00DC5713206F4CC81C8CF9CA96B9CE91B724C97AF9E133BAA13D8719CBCF12B398E209997BC6011E81DE733FD44739F8E146808406FC55DEFFA305C77871409EFB8D300B401E8933132F38196AF4A3440B3049263B5B879E91DBB84F7A70181640F3D6603F9609EE1153B9B739FF8CD74DCA2D41B7BEA2FDDAB3AD6C43033ABE98DC7D1DE7B3262663EE3C517817C5C53069D5F3DFF9202F50E407F04BE501C0AA04DA38A29123EFF07A5374BC84158EBF215885AA0C7ADD615A949D1A63E942223EE14334B1BD16CA0DF7BA63337363F5A47EC510198D2270DEBCFF29AEEAFB89998F93211781E1110699D1AD8D3C65206D49BC0DDF7308336003D3DBB3200FD3C469C7EEB6C00ADD35995E9EAECB607082931525F2A83561FF12CFBD870BF9B4ED94067E34703D65990F49973403E63A813158B84DE25A89CB75A03B0CECE6E2F395343993CFFF1F262FD0403D047BFF3B3663FA64878521E15B66012CA98633253EEF183E95048741DE8CD94050FF3CED769389F03772F62E6103E03F56705E83C3D79E61D9F9E30339BD1340B7AB6109BF1990AA0D5346232E893325C5EBC1F6200DA00F4E918FD046865FD2284C5F4ADB87AC5FAB24DBACA983B389883F43332D3DE1FE899545EAB53F2D932D9A321287F3E2D7BCFF96B82347FA101BAF7DC6739BC41E8D331BACEA2631A8036007D5A86F36C95EAFC447A0A7F5D0AA3BBA384805E0E8633FF9CF6DE9954B5B079BDE4883A62CEA7F40442B2F74E43BF2E4AF65414E5B03DEFE3D662E06E95C2CF9023D78779B198A79F9641F42238A8016803D0A76D981F8D9BEDCDA0E5E47AA41C9D9454BFA817A07BB3E1FCD7D35E96B766CD4E3E3CF3EDFAB8548D08E06AD09617EAACBE538F8865FF47290BA60EC0F7188EE3B40DADB3E6C006A00D409FB6C19C92FBD5FBAC698585CD7F0A0E927F4E15C889F3226D1601DBD2EA8EFCA4A7D3D45DD257A7B82A135629B7F0D739A0F7EECBAEEB8C9220CFCCECE5DF7C41A277B6D04A0E8B4636163247ED72A14A83096C4DDB58B48A7C71EDB37CDA86D1597D6003D006A04FDB004F12C07604E01201CF0C96453B72FE40FF2E2FCAF6EC766C67D4476876A2979EE8D54277EA7E1A7DE5DF1652991432D836996F9D2113956542C80B8AFAC3B5939824D016B363FD9DC480ED2900B608D04270E8A980AFE1B148A7E814FA682B85D3167873E033260206A00D409FB6C19A723B1F05652A0B4D75064A84B3655B79514348164DE08B90890F81D6174B01517FCBDFF979EA2782C33D19B1A21E7AF80E7E28DF231FAE05D8B2DB66AEB156993D3F8B1BB6F3AD6A2F8B0C8EECB24CB73166F80AA87B0B98EAEF8AEF96E31A803E6D43EC8C3FB0016803D0A76D1093C22010E774040763162393ACD4159015BD4496C1C92220AB73A31F006D206901D571A05D45D69E421AD491864D200D110401DAED362CC743A1D807CF2F20B31CA4B60DBF50865BA8005E1F5019012AF300AB04A000D845C02A00962B3B5708F4E7A9BAC66462B84C2942C5CCE8B0C90329C8DC63E46B00FAB40DB133FEC006A00D409F96412CAC020159F1CA206D8010B05AB2A7BC300E710A381EAC34861555911DDA8660F26934AA7B91B42790548FC00927E1C555B8710D56D4808308691C218E520179DB2DC3760B486D17B16D21737D646E1989D38FC81B028A0B51E85B8CF2F05294E62D833DB40828F6037085BA500D29CCAA3D642801B6FAB9602EA912D21E92FECF507A18803E2DC3EAAC3BA8016803D0A76550EBC21A59026E428CA80D641340BC1BD8FB30A243DB3171700F82564B40B0E0A448DB63B0E226AC24441A07401AC1CE22B8762C7F220BE5B52C3492A5CE32F5ADB6ABB7913233E72B2C0789E522818BD422781761792540BE8BB0DC22D2CC82653928F50DA330FF1C14575F0A6B681D8061C01D4442B0D7E4862D74C77480569488AE599A0CFAB40CB1B3E2A006A00D404B047AD50B470B49AF0EAD177404A97A7F7014DE550A815CFA335B8E81B4AD8E9486405A45F6F40FB07FF3BFC39A7C02C5E820BCAC0D57680FD5C1975A91D00B76EA0AF7613B547628B2599A4744FEA18F912A0ED8B655CBB5AA07AAA29D6A35D1AA8E8E1C4FFD4581BA3E4DF2197611756F2192FE7330B0EC62F4ADBD12F6A2F3152DE27852E414DE3AF5D516451A959F15A07BDB263BAA92D3DC127E3CF7FFD910AF776C280AFED85F33DF33F31DC7F319C73ACAD1C6ECB1DE37577E6F00DA00B43C4F3D98DAC5DA1E7320E913E9A28992C2A52A73E4DFDD148945E02520BA82BF165359FDC5CFB7F8C3AC2D3446D21E03A27158D1389ABB1FC5F8E6AFC26AEC411913F0E23A7C514DF0184AC6C663733709E17F7B1A41667F86BB3FED9CC14C638D4EBD70C6C4D239E3FC9D36E2CC43621511642504CE30D0BF1CA337BC06D9BC95C8EC7ED8CE206C6701807EA14084A04E2380123CBD3373F73C1292EABADCA8741E59AA447A9DA222FF762CF03AD9007234803E1E90D43D44F94B652DD1DB7DDF594A746BBA795DF6597381E339F6B1E2A0E766398593F179C73ADEC9FEBD016803D0128199B686F2C02692512ACD84CE30F583ACC05375CE4952CC8164A748B30C2E414AB473F9DBF88200C014D0DA87B8BE133BBFF6AF482777C34BA650B46AF0D30914D0829B05025A2981596926D40D22A7CB0940B77E9F4AFCE219C85C647948DD0A6AB18BC41B42CBAAA0810A06566EC2D20B6F80DBBF0A767939E0F621B3A8EEA03A45D32C147C508942CB5499011D0DDEBCB80056368EE6F8380A7DCBE01406A4787AEABE7ACD50665BFDE4DAEFEE34D299AAF58F72675899AB7B015A8FAD69D7D2A99F763D5066C34E35C63A53BCFECB31EEBC9C4F3791983DF13875917DDE4732006D00BA9BE6F6C4C2165241F3ACB62E84692097A439A713723959DE6D4730CB6039394F9088E2226B1D4430FE1360FB37D1D8FE6DD8E118B2AC0D87BC711AC263C69C92C2B084FF4DA98F2688698DB214E3F4A6F3A736BDE475A6FA9A4A22F293B927CEE0383E52F808AD12027F3E4ACB2E817DCE75185C7B155267212C3D51259603CBB2E0662C7E5243CD78325E9C84B8C7DC38D243DFC4130F3E881557FC22FA176E00B2C2F37EB68FFF0308949C4D7334CD5B206599D4930EF35F4EE72EF0D5AECE94D52A47BD5ADEDDEBE3DD638522BFCB3F56E8A91EC0EDC9B4F3A9409D53AE32E79812E796EEA9CEC4EF6983B92B959C0EF6C71F99D3FE4A03D006A02502BD990A9FA069CD17CA5A33A74E856ED04A5FE184C9118BC698853536DD25B01C66CC75209D02EABBD1DCFA3D4C3EF60DF88DDD280587E1644D647608C7EEB1EDE4136EB380A7926FF5C0B37390C748456E278FEB29CE2E65621000721126096CD791461A97D79B9282F111DA65D49D2154DD455870C92D18597E2930B802700690BA83C8AC226C293CF21A7875D47993AE9904C2A750FFFE87B07BEB4E8CDEFCDBE85F713960558E8FC73D6908A234E4BDC8A7A29D0F0CE54B9CCB0F7328E73C2C8D961AA0F39FF7D209BDD9758EC11DAFEFDEF3EF4D8EA725CA1D4497496DE66A4E8E792CFA829F77ACD79CB4589EC40F32006D007ADA73481A81A35D6465DD6425CF8C54B4940F9DD64AA8AE10AD9AB0A8A6B00264F1218C6DF9362216FC5A3B91EEFF09503F80421AC04F294D8B6039A15022E49485ABA5D2821F6F5BC2672BCE9B1A68B202161C7D9C4474D227F12138C6470935C1B2A69E38E0BA40C2A61AC04E980D3BC81C179165A3C53FDD2194E7AD4336BC014EDF6AF4ADBA0CF6BC35B0EC41C9402D66AB19635447BCFF87686DFF1A9C5DDFC4A1BA8385B77D0095555703565F4FE5F6D45DEBB484B427C6BDD8D69B8D76EAB29A91E990203D137E9E5977890735729E1530A7A7D0CF1E8019E779C666CBB35DA5016803D0D3005AEF5A022A253440B3CD593D2F04234DC84A2AA4A466D23EAD335D2BAB02D97EA4DBBE825DDFF957F8ADFD28A635B8590B8E15089D2180E75888D214B6EDC1E6B2995617B2DC6531901A66161CD5234D70667BB7C36C95D383CDD79CAA744875205A7A52484953C8FA9DEDE236B244FF8E3F77D8E7482EBE8438251D5241EA0DC35DB41EFDEBAF4761D54DC84A4B915A2E9CE829C43BBF8EB107FE0DCED8E3E84BC631E62D47E5A63FC0E0FA1B61D903B3EF1A732AB0BA17496745D119E0DA933DAB21931797A79FEC342FEF5E7278DACBF4C10565BB14459E434B5A30DBADD7207DCC533F15F13B99C730006D00BA3702043E79C03A0E6ECA87429E957C1D9BBBD1DBB949502ADA642BAB01B52771E447FF8664E737E0D576A39434859A1052449CF96358568C38CB90D81EB2D451D9B15EF28BF04300506D6FD599185295A9AA8EEDDCB8E8643E0947FB2C9E90CAF08592B032B84E8A3089E0BA1E126DF84468D6848C00BACD4E48A1631C847605F5E26A8CFCD4DBD1B7FA2A64CE20D0D88CC94FFE1E507D0A45AB05378A70D85F87CA2BFE00031B6E84650D9EDA0C3ACF4273243C4A36376D5995BF663680E6EF7A4178B615CF4CA09DF99A1EEE3A3F2D59B53CDBDCDC33779CB239FC851C8606A00D40E799F2B44C7A46583259E653B5A1A46F2C7425B9A366CA16EBDDC0D3DFC4BE07FE05D6C43694AD06ECB801C7621309690C458928DF8D0CA9954A262C3BAA10D0C8CF8A62449E6C9D49EBBFC943A7B7B992C2BF9E445EC80763E6676BBEA7D7275A65845D973C16FEAC8CCC34AF547269C49685B6E520F686D1761663D1DA97C1BFEC95C8767C13F56FDF2DADEBB69DC28D1C8C391B51B8FA7D18B9E856580EBB194F1D8F935909B83AB059D0E4FDCD9516D379095D33A41245194CB101A8F3D503F2B2189219AAA31FEC288504B7757D5084403A59EEBD5C594BE97B2D1277491C74443829F2F8DACB453E41CE83594477049D155487016803D0B302744FF6220542795182340A61BBF4ACA05A2384954C20AB6EC391CD9F446BC7D7B1C03E82A4761805CF13884AF453AA1263D5D4A1BC3698056B5D730ED03D4F7A9E31A9A49DB482CAD6659F3F520EA7109CF326184B8A949C48B407AA0083523F1098A55125531CB38550F1F4B687C0B6116516BCCC453B2D23282C821B1EC2A03D86C48AE4FD4EE22A80BEFCBD9877C9AB607903A710A0D584C92FC6378D09D4AA26907F4D93ABE5E8C97B4BCB554BBB0BF6D20C1DDB5835DFD29C50B4CFACAFEAE49A574EAC8DD30C419C2152A1006BB0451FF02C0BBE65490D829A1E5BCE510371AA29303D5108DD26DE5B8E80F7340AFB54B1612FC49834006D007A3A40ABD19C6A7E59B241A15C1545A1141419ECB8892C3D8C78CF37D1DAFCCF681FFC090A691D4E5045C9F3C0E7872C89EC3D486F0D293C4ABE2C5405C18E822DA56BEE7601AAA3AB5C290746D90750405AA563562AFA8917E27178C6671264A5455C1A6762C9F2D9C9A8247F9C6494BB1ED28200B4A28358280D65A591662E225239B051E015A740683BF06C764486D25199F7361E71D7C17BC93BB0F0F23B60B9F34E194033E6715E90950950CB3272BF6E0D78B91BABAC1BD258AD690888BD227A4D4CD1BF9B0D38BCBF9295734CD9409C01ED38463505C6C30C631301C626AB68870912BA17A629D22842D1B1B160A084C54315CCEFF33054F250F294B1161BA0946115A938AD8D1705109B84BA1B29E423E98C546FE423D100B401E8E9115060A948841E791D8B60DA4DDF628B767A08D1E11FE2F017FF174AD54750008D8A52F172A6B73D1DE104D709CECC7DA701B4A233486BA8AAA3025FC5542B70EE921D399DC1F352C5CA53BD558998A04ABD8A60CCD310A78FEE794B46E97535BAA2846131944D2A8E34B810C8AC28814D4F113746222A105FF854123F29228C796B605FF0562CBEF21760B98B4E99E1BF02689DBDCAED577CBA46437102E44F98B35202D9CB7E4C2BCAE981A422A3575D3DB6AFCD30432388B073DF118CB73354231B610A440927727AA3D848924C56694E1AC34DDB70E326868A36562F9D8F954BE661B0E2C361566D012EA933A92E13A8F9A7034BEC5F7B6893E391E09D92A9FE391EC400B401E867464067B4BD5A36495DF8D03681E62E4C3EF52DE0F003881FFB3A2AD938ACB8A5B857DBA5020D19B31979ACA5B543EFDCAD3868796167C711A5C8C8015A9D8B02E8BC2899738F926BCB80EDF1DD788EE3FE44DED6E532D5EA81D9B3809018307155A1EA61C2A1938316CE34113B52667919A90FD2383CA81323B002B8CC4A59204D5D59C20311C6DD554837FE3216FFD4AFC0F6969F528016193B270B1642396B6489A87312DB968CBF9559A847C04423C064B38D208CD10E4284698234A16C92D799AF8854799740CA9F0FF4F5A1BFD28F7A2BC364BD8D6ABB8924F590D945191D71D6FDE6AE3919C1360D91854DD8491B6E1AA060A79837D887A5831EE6155DAC5DB54C3A1609D2769AA86C5A3C6095FA28E7B5CF781EDA00B4016819D0B9FD4387FCCD531F6D564FB049ABC0D413987AF4B398FAC9575068EF43D969C2CA9AD225472546FE70B038269CA33499A8ADA0246396F2995A16E740A700BAD39BA8B2546647B274EE948614EDA197E2DAF0F34470F639BFB6AB06D00528C9E4D5B5E4C54BA53C513C6EA74BD04A64E2B133576822CA0B332745ECA4328959F014BF2AEE4C09C6DDD588D6BE1ECB5EFE26D8FEE829036875CFF2766E6E8B004496B86EE3709861E744887DB536F64F85D87B680A93B5967452369A2DA4490024216CAE08E82942CA8193561AC3B76D0C94CA58BB622516CDA75789A2CE12C792F7334E046432219CCA733E3A8E7906AC77B0059E5C59842C8984FA70DA531846885B6FBC124BE7F7C317BF704E109C0CBBBCF9340EFA39DFF939F04603D0672340AB7428DFA2C9F76C945875E9A416B3E4CCBD00DDDDBF496D30220F6F0356B21B47BE7D2FE2273E8B5278187ECAA57980D48EE1C2861D936F54C971C44671D9AD84459E443F447C6CB85CF61599215AE7196A2CBD66CE01580172FE2FD5C9964AEEA47642C9F7E9EE74973D2B73DB951928D3A5BC7D9C795CCE29F76A7873AA255FC8EB4944D335BC16163E5587A02201329BA55172A59ED26BD3FE34B5243EA480A894605C62ED33E2F06F59022BB530E1AE467BF59D18BDE9CDB00BCF17A0BB3E17B3DEF79E829E2A31B0E9DC1260E6B6083B6B199E3ADCC09387A7B0F5400D1341866662210862C47102DF76602531CA4E083763ABBE0D8F3FD3296B1886A8F83E36AC5E8DE14A1F5C5D4864744299EC596064076A8684BCB34C52ECFFE1E4A5C64510D082369398250933F50485A889426B0A0B060BB8FAF2F370CE9211194DA214E2BD3FA55DA6A700C00D409F4D009D679BB30074417173C7FD959073565E11B6D50092034269ECF9F2DFA134F5044A6953BC8B2C8F52B24896EA36B959ADBA5045279527BB6C48D10F1099576A83D51234910C0A0EB943E5E1616B92931C6326046D2696A25C6E13EFA3AC88A6330F89554606178968A35D291009DBAD8B8E4A12A85048C805FA7BF020722E293C8BD344282DE78EF0E74DB8EC80A42F88EB08172ABA6BC9F6734A859F19C31121AE8730027CB720120525AB535C3A8FD3ED76E4125CCB083B7C28BD46B43F751AC1E3694619AADE0AD4466FC5CADB7E037661B52A78CDA640385A7DB4F35A619575BBBECAF43B9D7B323494B6869C2DB96766CA4DFDBDA7057CF7F1713C79A889B15A1B8D30469AD2342B112AA1E83AA03EA7E23898D75F44190468FA8BB8C81C6E86E0238829D9B3B164E12294FC827480B2FD5F326864886442223833E32620D3A384F73895EF24890594E398C756935A9C2448E2146E1CC36B47B0E2492C1C7271E3951760D5E261B00CCB38AAF96146DC7ACC938E7BFCCF95171A803EBB00BA5B64EB66D005CF46F15800ADD78404383E10AE54E12358DCE1A4FA040EFFF0D3686CFF3AFA92FD285B7564ED260A968B88B69A8A5C150E56D1155DB749D5A6AD321C45517099AB335136AB10D11D1B51C425B10B97D926FD38D294FBAB20B63D447601895D826517D1B6FA515C721EE68F6E0046CF010AFD5ADE464AC556D4B6EA37D492380550CA984873C862BF17C26A4E00879E427C703BEA479E4250DB0F2B9A829DB4507448D91078D5E7C97F5C09C844C2B8B8B02C1F49C49F11FE94EE595D5F978051748D9EAAF466B779029EB2A59DC5309BAB8F145567192617DF80735E7317ECE2063D39F48CCFE359B78BA42D8623BB20705E52AB0E9963F4B9A45984C4F10494A752E0915DE3F8D6A34FE14800349C7E4C063642A70CC4212A9E8D65237D5836AF8CE1A28BB85187D56E226DD711D426618581806F68B9A84529A6DA3156AF3F17FD43F3D546E8A2BA21C02B8E5AC056AB3B7A417926400B48E7809D52E191228E62B9AD5990C28AAB72AF8A59153F75C946BCFCA5170BDDC1A9685A838C0ABD1E13479BD9E60A1ACF721E06A0CF4680EE367330933C1E80561A524AA10834AA31C44DEB40633B6A9B3F81E6639F45393E82349A82E593B2C8E046365CCB17F73966C32A7B541924E14D3D9E0AA0723F0BF51A252DA32DA92C67655DCCADAD288D56196C041B4D7B0075771E9AFE62F8F33662F1BA6B503CE722B5F38945837C1E830A097EEB4D60B52A443E2CAF14754823A34A00002000494441540C76045DB57529FFE4D3CE825404246D60F7E3683DFD100EEFF83ECAC95EB8D17EB8D9146C4765D4F9C4213ECF510436A977B6C6B2B9A1AD526A2B65C6F40E0CCDA8AB8C9EBCABDE252B11D0E72AC3C6A4B30463235763FD9DBF05A74080D6EDF69D21AA41771689A192EA89E3B6520A2BD18B845634197A2F45D5956FE14806EC6CA4F8F613753CFCF42134781BFCA2B4DFAB55428A918285754B4670CEC221787184A455C7E491436855A710050DB45B0D356946C0543B443306D69C7B0106E72D948C3A0C22386A69A4B2654EC8D4C6F70034A98B2E38278ACA2020CB9F9ADAD07F32A34E32F51D350305C8ED715CBE7E295E77C3A5A870A2A4ECAFB76C9163F3F14C6E7311A70D409F4D00DD49173407CD657AA600BA786C8A83851DF12BCE698170175ADB3E8FE6773E0ABFB10D1EDAB09D0C4116C0B11C78340A4AF5AED6C277D0E08820C5DC93DB4929EF0C5520E4B9A8A61372D6F29564F044CD4063530FA9D38FD0EE47569E8F963708ABB200834B37A0B2FC2260643DE02E533B9908F2901C2740EB4D67F543D9159E742996CE1DCE5DD7743E2590A63BD059C8445C079209C01E477AE0511C78F04B40382600EE8475B8CD03F0E21A3C87A01E8B4A416D6CCBFF245DEC00346D3855469D173FBBCA6D9EAA283FA4614F193139998D296B090EF45F8AF35FFFFB708AE709859343B2BA86670768A5D456F176D8CCC3AC35C99079B6AC46486554C304E35182CD3B436C7EFA30F63412A45E057EC67B91C2B5228CF417B06CE11046478AF0E3103EB3E4760B41A38EEAC4189AF52AC23840AD514323F4106605645E01A3E7ACC5BC45CB443647EA4AC4889AC650197417A0E59E3FE39BC0AC326702740ED2FC37C159BEB30861DA869D7A089B21BCA481D10117AFB97C032E5CBB021E8DACF2ACA043C36BAA6B36BA682E8272EF3919803600ADD15267974CB90291D3B59FFA1282FBFE37ECEA76B8686AEF62554194CC883CADF836E71A61F2BB0A48C8C14AC55EA456DD6786FF909FB17828E91D0B74ECB02B2028AF80B3F61518D9F40A60E1B9CA6A543220368114D59F9221E9274DD2C219BB8F74B2A71E43E2691967AEF1EED2BB9DB768EA0369A00A98B2CF21B3EB16DABB7F84E0C9FF80BDFF21F8B53D645211725A21FF2E9ECED2EBA63364D5F2AD56156A45D26956EFA17A72450A97E40AA017637FF1029CFFC60FC0295D304B067D0C349109422942B4D845365C08E1A09602DBAA6DDCBF7D1C8F1C6AA299FA88A8C3F61CD85180E515072B160C6264A0889297210DDB2830D4DC80B7D94250AFA3363181A98931C99C5B610B8D76805AE423B68BD8B8E922CC5FBC14F4BE166E5BA4774A8D436A430099F48BCEA067036882F36C00ADC05A017442450752B49A811868A59477B626704EC5C2CFDDF6726C58BD54267DAE02A857975DE33911CA84914F71731D957BCECF00F4D906D039B1A039E82C83EF39C7C8A03567AB3A4C806C12E9C1EFE3F057FF0EE5F187E1A753C8AC1009795B52C65A4541FD2A3341A5A72050254A4A27692C018BBFD7EE15F26395B14A6EA5413B421991BF10F6C24D70462F4765D3ADB02B2B905A7D52F093CF147C533C724F2239FB8D13B4ED95A1A8E3C997B2CCD3AA909CA3CD815A0149D7F321DFCD9B801701E924D0DA0AECDD8CFACE1F626AEBF750B227514CAAA2D3251DA18A83AA4583D23AD51A9E332DF9FD501398E2E155D62DAF4F5DD4ED8538E06FC4B96FFC6338A58B157573025F39F74F7A85B234B66B532DD2B06C6CDE5DC5D7B68C61673343D5ED83EBBB8883162A568CD1A10AD62F1E41BFC78922824B6960C2E27086248AD0AA4DA13E3181E6D4041AF51AEAF5061A61846A33402D2D6074CDB958BB7E232CD783E5F88822EECE4E0E878D248ABB57C53EAD8CD759B5CAA009BEDDE2A00269FDFABC6098243A838E90B291254911052D51E1844980A455433998C26DD75C865BAFBD14FD255FC68D32FC6241560D49F1EA3A8178CE89971A803E1B013A17A6292999E73B4A6677D4259ECABA74AF1890EDC2C47F7C00D1530FA01237E05A6DA47680CC2650A5F0AD02A2C446E47AA206201FED2080C36ABE5AB08376A5F9034130A2E42C11FA84CD19E4AD59FCF3D17016C15B7515E65F72079C91F3017708197CB123555CB820AB6A191657B9E969D0331EB89C83EEBC5715C9146EE77B70E99CB9E3C2A6E470041225B753D7A03C3734B79D514247C73E1AECEFC6E1CDFF84D2D35F8535FE14DC24E07A4056068970F8F4B026E8F233D849A84861DE0B7545AA755C7546F23FF2D60E1AF6021C70CEC1B96F783F9CC19702C2B2F65CEF3196E83C4E7E07782DCC1E9B29B0752AC2971F3D80C7C752A4853E0429150F6D94AC00A38365AC9C3F8CBE4251541AECE7938E50097E82286C636AEC201A136308EA554C4D55516F05A80529269A31FA17ADC0F997BC14954A9FD2348B5C8E8A8C043629A03896C613293E8B2CD312EF0D9541F7F2CD8AD2C8E574426B90EED03F4B34C52100CD5A61D814FD753B69234B0264B5299CBB74086FFBF95761F18221E934940C9AA7D303D07302744FE4240C409FAD00AD818D70E711A0D98ADCBD56B1CEEC6CEA9AF3A401AC7412E18EFF8B235FFE13F487FB4452A5409080422693E53FF28E0E6287452C668B7CA099E912E454E62CFF135055F447CA6FC716BE32B246E02DBA00FEC6EB101796C19DB70EA5E1756AD3554AF0C85713CC25FB16C19C9C3A416F6606DD29D0E7B9EA333C26150FDEC539DDC23C13F934F0CBB17596DD2D32EA394218951A90EC44F6C4A7D1FAFE8781E67E20A3319227C4322565A2E6934A200F42AA470134818F71A775A9D20BB3034E4D06DC68B769CDC7416B146B7FEEF7E12CB84E01742F85D30BD07A37734D7C0B00B2155F3AF16C20CC80C7F7D7F0E3BD63D8DDF6B0AF69A145AF9038440131CE5D310FFD568281B20FDFE504C68953A9CCA95156F4448276B38EC3FB77A139358E767D0A13D5266A4186F11630BA6E134657AF41B16F405903C8B5D168C9124A423A0285DE5059324F59D2006935CD74A63C2363268DA10B854269F480B4E2A129CBCB10B75AB0921461DC449AB491341B986735F09F6FBF11975F7E894837D93823345ADE88752A77793811107EB6D71A803E3B015A0192CA41A55145CBEC3AC0DC0348F25A51A05581C947B0EB0B7F8D81F1FB51880E4AE3093BDEF8D45B16F93FF2AA4AA5C15C4BD91FE5D92153521A067109CFA2A15249F8D2EE0C04968FC05B8823F152ACFB85DF86337011526F3E6015245B55196B3E19680E99B481A6283A4BD45ECFDFFCF60978E539F7CC32FE33BDEF95A97C1E040DDFD391BCBB1E569540E5078D23009EC4DE8FFD1E066B0FC1B2EAB26088536E28E0A0142B37B5406F3860D19655B26416E054F79C4C626902CFA1F704419A2B0E076D7B1E26EC6558F1EAF7C05E799BC445CD74EACA3A9351079C55D553E2ADFB6BF8BAB60D4C45093EF4E52DD81B17D02EF423755C64611B834E826503059CB77C21DCB0AD54376AFA53F7B2A75DDB4A63D4AB9338B467A70074D06AE2E0440D536D602C7471EB1DBF00BF5810DA41BD8D9FC3BFA8EC98F79ED749D0168066C76096211280D67AE71EA506B3E5344E10A7CC9C35E72C0D2ABA489824889248BCB8B33045166588C226D234441206F06BFBF1AB375F8E57DE76335CDF97E628A51E5269829A0CCFB02F03D0672F40AB6EC2E900AD1A3EF4409D66CA1B00D11E1CF9CA0781BDDF84DDDA858A9DC04B15F8D030472C428537D5AE7262AFA90C8F5834132C490BEAA85CEA13D0C50F9A805D42CD1A46A3B801A32F7B130A1BAF079C61002C002A7DB4CABA89B3DA6AA7F781CA112A3FF59EDB364DE970942C69263B30ED519D09CCD3F09AD7263D768A22899F061EF85B8C3FFC39149383706C0208F95A163D3D20A1743041E6725359075194C0725D55BC4BB802B1613905A17FD2842DCD196CC7459ADA6865FDA83A4BB0E2D677C15EFB3380555419B89E6A45712236AF54DBE8758D00B3DE2A8C506441A6906F6C6DE15B4F1C40AB3482982E84610BFD768473E60F63F95005054AD2282FA4424582AE2D54B5ADAB902F5184FAC4380EEDDE8976BD86B0D5C6DEC3E3186FC608BD0A7EFAE77F491CE8724C577B2CE67A6766D02CB4767966590DA519A2589931E57C732FE7CC5892CE20C04751D4A13CD8BDC89F87A902E8B81D216A3309005A418856146324ABE15DAFBB1ED75C7E210A2E4BCF6A25C0FA809853D105EF4C036903D0671F40E7579467D0B90E7A3A28E96C538A392D203A88F4F1CFA3FED04781EAE3706CEA7C2D58F44C703C36BA69B241596CAAC256BEC37286943A6059D61354F82044B028A7731CB49232EAD62264F33661F1D56F80B7F85AC01D51CB77DDF5451A40AC142481D6C637D3B2639D42CE02D06A22EA92186A4D3BFDBE3E2B40F7BEB42748EA3DCC042781740288C651BFEF13489FF82CBCF83090D1208AA0E8206386488EDC2EA95DBF858FB7C53C8A5ED0A43CC47D4DFEED0950B9E4D92DBAB931C60569C2A93B0BB0E1A6B7C239E716A138B85251CD268A1957B9A0267D64A71A4E9E5212130F8D5696E1EB5B6AF8CAE37B600D2E423DB150705354AC10ABE6F561E9701F8A968D30A4D6D9869B50E3A1E8240165A16D554349D26EA13E3E8EC37BF7A255ABA35E6FE150B58E23F5006B2EBC04EB2E7C896A001290566DDB3204845BA6B24565CF1D5D332762D213D4E1599970CC39EF9C73D2F4E150009D220A591454BC742EB38B62A5E208DA2DD9173208695F6A63A29D60A410E1BDBFFC4A5C7FFE529411CB8A456D08E0698BD2332C7B9621AD544779A351E70A32A0DE04EEBE672BEE7AD747E0BBDB71EF3DEFC01D775E01D7CD1FA433F07A4FE494675D10F5AE8A959C9556B64190D79F4EE400CF32378C57C9223E972F9D8DE686A1A2E2A01707B7975219980230BD8B33FF4CA7D078E823081FFA07A0B603252F84E3F0018AC4D48700449652A96C991977951AB9B7736A87B2C34A9A9554130A68A204046919557F23FAAFFE4F18DC740B602D901DABB943B670B31A5AA7D317DD94B6DBA5AB97CF72F24ADAD71BA0A32D5E3B973B23941D5E5D06FF51DE2DCF45002BD98FB11F7D16ADCD9F44A1F1344A560B192D57A56B92948E0FDB294BE193AA09CBF35457A3F83FDB886D1796E74BEC13FA43A30CB8BEB42F73024B6D0FC5BE6158A5F9683BF365D795CAE8C5BA094665D0FA7F9AE650574F8584A86444AD013CBCBB8A2F3E3E8629141038BE38CD153C0BC5B885754B87B1B0BFA4A805E9EC14676ED1E3080D91D346BAC3254B42A4ED266A478E60FFEE3D68B72354EB219EDA7F04CBCFBD009B2EBD024DAEC6C4C14FEF4B49AA23CFA0A53098B76A2B9095FA21576491AA49E4ADDC3920138C05A035703F13A069984413A5047148FB810851E063F7C11AC6620783C30578D1417CEA83EFC4C6E1B2325A620584CE7934A5D2AACCE7F2549DB6F718803EBB32E88E9DA74E23BB8D2ADA0653C059EB8D844A20408F63EABE3F87F5E38FC2CBEAAA934C6B56B98335B39BDE729DC233B53D8692D531834E54771C8AAA38680588AC0A027F05DC95B761E0E2D7C159B001995396E53DBBC92C3E3179EE9B9F526FD54F3FFC0A43094A79C192D48A56041EE3C9E9426FCE91CC32EF4DB355ED514DF0CD94D805FB70E4E12F21DE751FFC644A356194FB90CA6E220EDC621F0AA5419198F10C3DCF47A15082459F0EC6A958068A25CD22B84061082811A4A919D64B0712D9761F326B0089DD0796F23845C7B95FB2EEC453264FC47F5B3270A2BE48D2017CF6811D7868B20014FB55A1350950B062C99C17F6F9F277593049BFBADA39C5938944C544F973B016C04E931069AB8EDAF8111CD8BB1FF5066D42338CB7135C7ACDCB511A1892F34B82B66ED8514D31FCA88E7C8EF23A91D8256A32D23C3EDBE3C97C8BBF86786C900E51CD29711C76336666D09D269548017A18C38A13448D3A9C38C1FEA727F1F48E4368142A98BF61350A032E7EFD960BF0F6575D8C924B550A0FEAABF547778398D386B7277C6003D0671740AB544BEF46222B24D5EA5D2AEAB661DD3C20B898D0E42602EA4FA37AFF5F207DE253F0ADB6E253E57962A349BE696CC7825D1E6555D4533B65C8A258B249B5DB09F3E7C876D128AC4069DD4D18DC7407EC914D922932B354BA664D3A6B9FD31C23158CEA057DAF9C596F162BEF620761A76AA6EFDFD152E52EF44CE7489E71DB67C9C7E5471910D581F61120AE2929225D9BFA48D1F8AA65CE21B5A1D522A2B7D57BFA0928A8AB513A5C9A2951A5A2DB91F96F899D9A33D938D2880B988A528C35DB6827199AED14CD204518293F0A16DE1861CF7385E3F64B3E0A250F61023CB4E3300E444524992D8A0CDA492D1C2861C97009252786CD061CDE3B1AF0F3BC09C6726CF2B3CAFA9359BF147DE3A803D0FBF7ED43B51560B29DA27FC128D69E77115AA12A6E7255A574CE3C355578558E74A44978CE0AA409BE02DE492AFE250468FE4EB86566D73A6B16E586FE591C11AC75076144808E8030048236EC20C1CEC77660FF9683085A365A8502BC65CBD07FEE7AACECABE2BD6FBC1637BE74BDA23A124A4C2DB5F9CB99F66500FAEC0168055EEA7A483708E865094AAE8332551C1A08C4A35952A90859631BC2C7FF1DEDC73F0DA7FA186C02760278D4EF8A617BDEE7415736C57F6636F945BE5FD9D3A8ED87B89C6499DE45EC528DB0080357BD1E036B6E00FAD72143BF02F05C0FACBDA13B528999D94D2F8791F3CEFAE2D406B427F2355B1570B6F7CFF23A390FAD48910C534F2E5257EB7A65E43C7167D73CFD511DEA40B1C5F2FF8A2822770A8C37534CB4DAA80711EA498A7AECA01924A8D69AA2178E98558A8195FA40B567201B8654E7A250277E41DA84EA5122523AB6D5FB59826543152CA89450B46378F20A55B49329D0223FAE762AE767F3F372476B72B7884269EF669170EFFE83E2B5B177AA81F35E72052A43F3C5B950E879D09150359AF0B3A416AACD8D848B26A5A2BD35E458046F66C259AC3868CAE6E87E473A4DC09BCDA58AEA88A216D294B406F9E850FCA1FDA889F54BE6E3A273D761F7D66DB01BC0C39B77E2735F7B04F5D2009CA5CBB0E2822558B6C4C2AFBE62136EB9781DE6F7F5AB0ED7CEB0510D4BBD1B11E73943FE32196A9DD55C8F6CE84486DDC978AD01E8B30BA0C5FC5DB630620795E26D4B8E8DB24F4D6DEE3247EE90D4460DD1539F47E35B7F0DA7B61DAED594FD03F990D167433268D987508D555738C7440A82C27D6645B55B88B8DF05E24F915965D4DD95682FB80EA3B7BF13F09621B32A5A8CA7B4D14ADE966BFB4EC6287EA13FA3DB60D23D522F27AECA770AA4BBEA3D29ECE41BC8682F0ADA8C52CB514D323CF2F4240ED4528CB56334094E044C87BBAA2670A5CF4439F41148D53E7C6A75C1B98CB50126ACAC7DB0F184F01BB148C7AC3809D1E700EB4617A090C6287277172A3F3A3BC1E4E2C8AED39E9058228FA4D733999D00563B446D620A7B0F1EC658B385A78E8CE3922BAF45B1320027B6B8390C6266C262D0AFC05781B0A235C4FB7A165F0DA5DA20208788F919CCA8D350289738A2993F2991086154571B13536C1204889B556C5C328C5F7CD50D58B962094A051B4E087CE4EECFE30FFEE8E3A8FB03A8FB452CBCFA62388BCA38DF3D8C77FCCC95B8E9CA8B95ED94A5AD037807C427862B31ED91A2315826D8DC5D56F8784EA5EA75A7E5CB00F4D904D0F9FE7D1C6DAA838D1D6B64372483CECD8264B95D43D6D82ACD16AD9F7C1AA56452DA63D9EDC77149DB4F617D05A0D520A601101F729A1DE5A6F41CE4E4406D69D6A096771093C5F3B1EC557F087FC145805311FF67793E7A77D2EADD20E0B48CFC1339683EA1CC94784CEF4C9CF60C73CDDFB3A22138D07BB99E59D8351963C7441D4F8DB5D0B298DB3A0266D2C96767F0D21443A59228401CD783EDBAB073933689A12ABEF1ACA8106947295A51865610A015B444EF3CBA60040B07FB80A80DBF67E76BDE4B7A72F7A4936A514035867422C6F0C96DC7944784A88E4FE1E0D838F64D4CE150AB8D8B2EBD0285F200EC28831BF3F88980B49C8F06E49C83EEFA3B4F373ECABB05993DC7B1A53B065B48289F8BB4835D96A0D99C9242A01BA670A3109B562FC39017E3966B2FC1A285F3C4A6B53995E27FFCC52771EF3D5F40E411A00B8816CFC7E22B2EC062F7206EBA703E7EF7D7EE00B545BC6C493BA4A354196D75A832ED3D20E45A673EA67494FF507D00A7E5CB00F4D903D04A55A0F8617A3BC8AED27602DFCF502EB89D5D991287C3731FC2035FC381CFFE15FADA4FA19C717B215A812AC99A98AC8BB1514E95E84D5EC9996AC92CB9569A2289153BABF3EE1026BD1518BDF537E08FDE8C2CEB974D3CE97B2C8C80168E086D92BB1DCF52B33B2D0FC2F11C7466834CCFB9CB5F357ECB6E21BAD53A4B954639722C1C69015B0E4C62C7911AAA998D96E3CB7E7C7C1B770529BB0EFA0B1ECA9EA3409500429588C08A52DEB02B93DA6B2A2F24AA424D10E01D84D4092701A27613F306FA256BA49786437F6DBD3BB9F885E48D1B72CD6A4563DB4A8A96C8E7F38D21AC304173AA8E436313D8B1EF00B272192BD7AE83EB152575F778FF09CE9241E7ADDBBD7FCE9E410BCF1C31DB66B66C29E546DA44CC7397AC5AF1D5ED7A9D2A7978ED187B1E7F042FBFF202BCEC92F310348EE086EBAF41A958C0D62D07F047BFF7213C70FF562476054D9A4E153D94369C8335E78DE092F386F1276F7A3516FAB21ED42DEC1DDEAE07A0BB9DAB6AF732D61694CE5A6C5F4D067D3C4FC8A97DCDAC8B9AE9EA81B925B3930D4C1540BB897AB069DEE31752940B6C7D55084380B4DA8F60F7BFBC0B95C61614E31A9C980231D5A22CCB682968758B7FB214948612E55227593697ED2C38D1541F7DC8862F40FFCDEF8333781EE0960047AB18F24C45A79409682EC4E66255BC3963BE34404FE329F5C9772E837E1E2CBE12F71C1F6DCBC2444860AE61EBA129342D0F895744100528780EFA7D0F7DBE8F025B93A9AC106C4A618BE1BEE2A4724648CAB6DC468B9CB880B592DAF15894428ADE388B90913760C75E4880E104C17140A95F0199E3E94941CD2EB2ED9760345F47B0D5F04DDA8A001A44D87FE808B6ECD881A56BD660C1926570D8E21FC4B099ED5A2962ADD450D4461794C55EF428BECEA26F26F71CDAC249C76913611AA09D06427544CD0885D04663DF182677ED445C3B82B0B917FFF503BF8D438776E20DBFF073A29176EC0ABE73DF63F8EF7FFA8FD8B2652F2CA784AA6361C2C9E06F588275172DC7CF5EB8106FBBFD3A2CE8E32EEA927EF42E203A456E65FC6AC1CDD92B69D9572F7D8683C0A91AB426833EFB326866CE8EA829C829A6F07D0DD04C87F9EDC5485BDFC7BE0FBF09FDC12ED9928AF6A19218CB8054995ABE43887E947526A7DABC99D3796CC98585C02EA26A2DC4F0756F4665DD1B80E212D5F0407F0EF16DEE493D4999080B4B3E904BC73309A0BB56A5D31E5A591E2860556B053664D8A85BC0D35311B6EC9DC4FE5A1B6DAF84586FF755B433CC2BFBE877394D29891A657B290B8F2E77AA2167ACC121D7B4EB1D5B04A8C55590801E2365F306DBA0E31841A45CECC23082ED789219F3339D4219499E49EBC2AE80BCAE0970F295C4512668D62752B854EAA4C0814347B06DE74E8CAE5D834A7FBFF0DC0EF57F94C1C986005DD3A3DC7CBFD7885F796A68F0CE9B4E12A5D0C8424B541D511A20CA144053BFE78636FC6A8AEACE83985FF4307E6007C626B7E38FDEFF5BD8BB77077EF6CE3BA4D186D778F8401B7FFA817FC4E73FFB2D64998FD04D11F816AAC37D187EC93ADCB061006FBBFD6A5C7BEE72F8E269A01DEE7245BD241AA24D924853622ADA6EBD7ACC37403855983CED3806A0CF2E80E6C3AB96C3EC40E358EC72D0926D092151473A793F0EFEC3DB30924D88B97BEEABA6D67CF9EB7495ABA34850FCA5926231C38A85BE68B90338E2ADC3C21BDF8E8155B721B5D9C2AD80578A6439A797D3007AE0778AE4A765E43F8783EAD27ECE6C4CCFAA74042563A50733B0BB95E0FEAD53A8C754C3B848D9FA1D72835560A4EC639054865883B22248DEC94328F74217080588D564294E783A951630156F8B54AC3D09CC54531033B9BB0925796459FAFA06E07A05F9DC8CEDE47A0305353E142F259A67B9E5DACF8319BAB603154A8A389C246885119C62516E2BE56FA22CA61C0EA94C26BDBB9FCC34E27F0640472A6366B7652A00CDA6A850BEA3B80DA79DC269A4187F722FCE5DB20A453BC18F7F7C3FAEBAEE025C75F525A8D5C7F08A1B6F52E148811FFF6817FEFC4FFF050F6DDE2619341020B2DB38581EC0E09A95D878D152BCE6AAB578D3CD17637EBF7208D48B4978F970CF27D6DCD13607E89E1D6A9EC38879FE6F31007DF600749E7109BCE6FECBD0323BDF577EC75903480FA0FAE047116DFE102AE1B898FC509A9B48C55A2B2D34179DB7EBF1B30567452AA7CC7E644B59AB84767905A255AFC4D065AF47716803D954690C2048C8C6DE3DBD31DDA2CCF31FBBA7FE13A6B7A0773C8BE4A274D1CE72508F80DD9375EC0B2D6C39D842C64E42E9647350F25C913D166CBAF3B11D996A189D7B931FA679BFC8DF72D11B3F5739054AB6CB0C34646307E903FA2167D231586BB560FB25D152731E2E17CBA8F4F549B62B3ECC1A70F29849238BEA1CD1FE272AF7CFF964C9D23B26482C67D802D422AC4B2278CC3AA348B6C8123BD91E0FE767283774D62CC04D2FE730449205A2D41015479C22A3C6396AC30A1A5850E883556D61FBC34F60A850E626849837AF84D7DCF10AA4590B2B572EC1A245A3C2617FE5CB9BF1CF9FF8261E7D7837EA0DD5D9E9D01E172D8C9587E02F5D8C9597ADC3DA251EDE7CF3265C7DE16A547CBA74A87949B2658E539D3C8867B988C3F3E6283606E54FD6A91F71A6D5FB59627EA671D0525692CD518198050EFD50975C172502B46C1D380E547F80EDFFFCC7188E9F403969C04DC85126489409B0FC4FED79D2E5DEA4D2AFB373D7510529383EEAD902F8AB6EC0E0356F81357CA1DE2B50F37C8CAD4D80514B47393339846671CF14E39A7C20081D905702733A48659CD2426D39086C1B0F3F3D89270F37D0727D8474914BE8A16DA3BF584291BA65015F351976563CB9C5A9CED8D46B547B2527D6380AA4B1288D22B41B0DC9B8C338453B05261B019A7182F94B4651191C51923C9DE6F78E6115FAFC2E760EDF5D34C954A03864D597AD9A4F04B805E479AD6A876F8BF73FE516546AD7F58EA786DE9D5BBAFEC8331394C931476C6851AF0B09D07C6F1A4BB6CFDFD95108B75DC78A81322EDDB01E56A381FA54039EE3C0F132944A36962F5F84654B17C0E3CAA3D0875A23C187FEF64BF8D847BF8036C199F64872ED216C2B46CD2B201C1AC4824B3662D1C2025EBABC84BB7EE9155835D227D729B24869B8623D455BC3C88A25A7E4993237530000200049444154F43D1215D269A2E24C067D3665D06A171079A0682E4F4222030AAE2BBB7A0B2CA60791FDF8EFB1F7BEBF47C51943210905A0A99996DD40A462A40056ED23D83522526A2DC5D4D10F3AF007D1286EC2D025BF84FEF36E039CF95DB30F1614735FE4DC92340725D94B30E73B4E435672A28754167B9A4B9F0ED0EAE7CAEB985AE4C9D4C2577FB41B55B71F1157190E8BA1BC071ECA85A2F0C61431F3E7CA545FF30D799626332137A8D59D792CFC4521C2B0AD8A69712C6E706D1A0EB9054C3502545B21E62F5E8281E111508F27B452BECD586792D52E73F90EE5BAEF991BFE324354BBBF884D9280AA5A6D298F0D6538946B9D55E720270BBAD591569909D0D38CF773ABD028EA0168AA35F29DBA23017BA7D544296AE2A6CB3761EDD285F0B21853B586BCCE2F7998373288C1BEB238067A6E09855241C6DAF77FB01B1F78FF87B163EB0E1965E4F169F12A99BDEBA15DF0E06F18C5399B9663915FC7FFFB8ED7E2BC85C37AFF4C4E484C5C6C29784B0221064B5C2572F0E693E46934F130007DF600B44AB7F46C6F47C22F4A5799A7005A9EB4DA6338F2B9F7C0197F00AED382CD4AB8B41E8BC259795E085870594EC659779E71E92DAA020AB612B4DD3E348AA3E8BBE0F5289FF77AD8A565805D5400CDD360E6E52A7B259E91EA53D39BC58A7AE34451F234BE3E4F473557DB995B74A225006559D83FD9C6637B277020705073CAF02C0B05FA617B1E5CC78643B066D6461F12D591DF91B9F5520F32C1D2C2949F1BB4918601DAAD960027FD2F22CBC5C109EA9327B17AED460C0C8EA0582CCAD29C7B10E60B933CE79349562611658A24E6FE6A2B5FB523BB1C504DBC5D8056F23BA15FC40489C387D9B502662A3604A0A573B09B41F7AA38E8EDAC0C9062B10E55DB5EA532D9D0B45FDABFC30871AD8E42AB85013BC4C6D1415C7EF179E8EF2B8AC789E79764771D4AB399681C39D4C0673EF9653CBD7B37FA0687B1EDA903D8BEFD1032162CC30C49CC64A38858767DCF10DA29EA233ECEB96C1D962EF2F0FE5F7F2DAE5939049B9B4FD0C7DBF211CB76092C94EB6484CD579D2C7A86B3E2A91E8606A0CF32801638E4F052404AB99CEB3B2852071D57113EFE398C7FFB4F3098EE404A4B5056F4296CD67A22D98A490627CD46F919BA29050E1CA145954EB6E18DA03A7C21467FFA7761F55D0680C5196558CC0796598CF279E86D99A5324179789C515F1D8AA38716D03F63D868F33919028FEC3884DDD51051A11F2DDB452175D0EF7AF03D82A6DA528CADEE92718BC659EF48AE0BB3EA35AA68479E396E37908501E25653B4C194C8B5321BDBF71FC6D3FB0EE1252FBD124B162FA1A9A9F87350BDC10EC3EEEA44F1CA1D1B39CDBC2A9A4381B36A3852002DDECD427190C6D0E02CB446F75BA4746CCBEE48EBE8BD311DA0737B500174EDAB415A436480E2F31C22A1295214A0185B705B212A698A73572FC6FE5D8FE2FAEBAFC2C0403F2CF4617CBC219AF2458BE661C9D2F9F8C1F7B6E1777EEB8398986A28B329BB8D2BAE78097EE6B6DBF0E8C34FE2739FF91A9A918B90E3374B105A31EA15078BCF1FC5EA8B96E1976FBA1C6FBC6ABDD400B80B3D25A24AB9A10BA632867DB180E52A47FE79FA080E6337FA6C4071A671D0BD0FA65AE272091DC165618A2BC2780F0E7DE97FA2BCF7F3709A3BC44A423228D0BF41EDBD47599E6A2DE386A504E8509A51D84AE1A66C8049458B7B241D4175F13558FFBAF703CE6AB5C12997BE3633F1E99D8382F73A5B147E2F0791D344EB9DF0E43093C8ED49FF39E5B42DE0B1DDE37874CF14B2CA10023670D80EBCC4C248B9025B803712458602BF148EEB2B30D5E9AE2A02129C15B7DBAAB1981B89EF7126BB8C00CD2845EC95F09D871EC1E557FD14162E5D8C3826F34AACD1DA688BBB892B4811C15CBE52D19207D1EBE85953005A126595D52BE0569239D9895B7B80288F0D4B4B0109B2F4D2C8773E514D2A1DEB50D901A5EB52C7A2207F1F6AE3237E36C1DA8ADBB0A23646DC0A2EDB70212AB0519DD88B55AB87D0D75F116EF8FBDFD982BFFF3F1F439606F88D77BC09D75EFF527CE54B3FC4FFFCAB4F22CC58B40CE1D887F1BA3B5F8EF7BDE71DD8F293FDF8DDF77D107B0F4C21CE485DB4D08A5B98CA6C0CAE5F81B5D76EC2D5E7ADC0DB7FE64ACC1FCC131935DC45B1AF37449082381F03E93CEC6DFD3EE191F3FCDF6032E8B32983561C9A549DB9AB34B5CC7620CE67253F8235F15D1CF8FC075118FB11FC780CE5A28738619187D56C1218EC12A4B65901B4EC226287A2DD4D321F5ECADD08A5CD0C07B22548D6BF162B6F791B5267991C4F71D41CE5B2FB1E9C8EAB5B47D0AB82DDD1A93DFFF17BAA3E21673754E154CD30FC23B26DECAFC77870C7114C240E22BF282E73542570AFBFB2CF2E345568A34115C3435E575EA395144A67CBB459F1CD59D446AB3A21F7A5194692E5B5E20C416A61CFFEC358B3FE5C2C5DB118F5462AE6EC0A709950B24D59D311DAD65F58541D6F55A4E544A0C158868BDAE544680F39CFEE24221BBDF267DA46947FE6EE742CF0C5047202B0B60CA57DA8F2E3605193C6FBF9765789066805FE04681604FDB08D25434BD0E754F083FB1E40D09CC0B9E72FC1CD37BF129E5BC67FFDA3FF0F5BB7EC816DB770C185AB70E9E5EB91A4057CE52B9B3136D91693A6C1F2145E7FE7CBF173AFBB1DAD9683BFFCE0C7F0DDFB370B85E2F50558B0743EFCBED5F8EEB6BD587AEDE558B27804CB06CA28F57B1818AE60F5B2A558BEB00F4BFB520C7840C1027CDBC6BC725128AADC0EEB19B9C4A94A2E0C409F3D00AD17B4FA82F8D84B93313C9F00DD44F4E0DFA2F9D04761B7F7A0C81D50586892244EB7BE8A89BF6A6FA5E05F38632B446A2B8B4C522102BADC56A9782EFAAFF94D0C9C4F13FE41CD7D2B72451E745BEDBF67E5AD58EA57672438E72344605937F248469901A165E1D15D47F0C8FE36B2BE61DAFB8BA11437DB2D95184365E529A1A549BEB62555323A95408BA715B5CC6188A8DD4212B61036AB08C8DD5A2EAAA9879D8726B06BDF215C76D9653867E50A05BAB6E69045BEA3A41632CD6AB14C2E25EB7853698056748656690885C1B72A9960BE038A6A38C98D8F14C5A16472DAA18E4E74A4393A56A1CA8D2E4A08F85466D0FC48293958B053CA8D14569421E57655E30731E858D8B4FE023CF4FD8711B6623CF0BD6FE2F6D7DE88A9A909FCE63BEFC23BDFF9E7D8FAE441B85E804B5EB20A6FFCC59BB178F122F87E1FEEF9F03F61D5EA35D8B86610AB4787D0DF57466615315507BEF98D6F637C6C0C3FFBFA576374D5423CB9AD8EFFF267FF84C71B0DACDEB851F682CCDC1811DA4A66C76BA08D294294CB16968E94F0CA9FBA021B968F60F1401183250F059BF755797173159877D9AA86ABAE6A661A9A74E8BDE34C236652693240CC8E2A478DDE994671A8EC4E379D385A819166F07C0725BF8AFAD7FE18F6D67F461A1E91FDD95C72C1521C226E2A334C470A79FC0C820B75A5AA6D5830809EC1D2EDE6617CE82A2CBFE32F81BE35DA4CA6275ACFA0048E7380CEB997E9D4534BEBD4EEDC6A09A0A467161A4986C7F6D4B17D2C42E49741CB28169C2A2EE0B834AC52C150853AD501987FE5DB5831A36531306E3510B7EB88C3400A69641628A3DB399560CBEEC358B5762D2E3E7F03D885C813A00995BA6F79FFA29E03258B56FEDCF98A45CE387712CCB3658DDCC215F7FC4C191FE5FE1AB911128B85AA3828AE736977F76DD97B3066E18F593EF7FFA3BE39076882768688CD29627C64A175B086ED3FFE21E6557CDC76F32D78FCD12D48121BBB9EDE868D1B566068B082B7BDF5E770ED8DEF44940EC0B203CC1B4AF1ABAFBF1E575E71BEEC37687B152920169C108EC5EDBB94D7387C07E54A49CE9F5D94AD26F0997FFB01FEEA6F3E8389D44269703E2CB788C469A150CCE0152BF08A7D702A7DB0FB4A887DAE744214AD08EB978E60D3AAF9B876D3326C5AB50815CF8193A424049171C721A1006D691F971DE7734096C953E7479D31738CC1DDEBF3D25B4037007D3665D0325CE4614BC5715FB5EB12A00BCE3826BFF85FE06DFF17E92424D8DAA44174F59E52A3AE5B31470B1B90992910C095FF1935B08953441303289EFFF3E8BBFE7D80B3A0EB0A36E70076FA094D1BF72772AEF91BD96527C0CCDD63B8751570A016E1919D554C242E22C797860E5A085508228CA9AE942AB9620EA53D5527D11AC7885A0D84F52AD280A641B1C8CB1AE49CDD129EDC378EC42DE3E24B2E46A55492FDD469C8AF0A8EAAD0C72EC11C8C73F5456722D0E0DB59C468F095A9262F06CE00E5FCE7AA65BBEBAF212A0E7A38E73CB3502009B258991C45CCC6B91515FF4DAA83323B6E36C06C9A7ECE69113FFCC68F31B6E7495C7ADE6AFCF4CDD7224B5AD8BA6D1F6CC746A1E0E1A76FBB1A412BC6DBDFF9D7A836D9E0C30D7BC770DB8D9BF02B6F7835FA0A162CB72220ED58DC1D9DEB0647F4D15E516D6EECB9B469F5B1775F15FFEDBFFF23BEFCB50791794544A98728A52F490C2B6D21CD5C387E1976B10267A80C542CF1BB9EB770093C2B40C16D63ED8A215C73F979B870ED4AAC5954C210179132017025A2B2E78E765A5BCE3E27897F8EF106A08FEFE93CF332680234E98854009AD90E3963DF735070C730F185DF86B7E333B0E972AE377D557B016A8F0971C3A3B2C3829D70776E3EF8BADD5878CB1889378C09ACC0E86B7E0B18BD19B007CF0C809E6674946BBBF538E8484D9E8D58E453A32821E1581D1FD538C523BB26B063AC059407C5369444BC27895C77E9AB3AF67416AD7D3444734CD0D63AE776BD8AA05113D5068F520B63B4ED3276EC1B033C0F175E74310606063B1D70D4EDB21351DD3B4E09CCA6959E3907D7DE512E3C759E316B80CE5F9767CBBD59F3F40C5AA93A4485412A464BE4C4609F3A68F2D01133EA48B2644E3874A86BB3159DB2CC3046D26AA2E25B38BCB786EF7DEB7138D1112C1D7670CBF59763C1481F2C7F1013B526EACD00FD25073B9EAC8A0EDA2F141036A7306FD8C55557ADC7A6F5AB51F65CD45B317EF4E3C7D06C37B17AF56A61E36AB52A6C2BC3F0F020AEB8FC52942A05D45B2DDCFFDD27F07FBFFC200E1F1A43FFC07C1C1AAB61F3E61F60CD9A9578C9A697E0BE6FDD8FFDFB8F60C5BA65B8FAA697A191F6E33FBEB2196E2905DC08C5E17EAC5CB70A2B4717627420C1D5E7AEC2CB2E588791324DC514AF9F6FF849F330B54C5203AE6711330D74F442ECD8406432E8B32D83E676466C6250CD06E4D88A2C7E784730F185DF85FFD4BF035643C0C161612F6F649036431609C9C5014E07A0D50B9481528AA6BD10ED91EBB1E48EF7018555805DE9D18C1E7BBC9DB6577456FBB9D6B5E74C3ADCB8D670CF729202B25CCAEB6A61E4B838D00AF08D1FEF41C32EC2EB2378B26097A050F00528A97966A62B6DD37965544F8802ACA40BA21071BB8576A386B0D910E3A3D072504D6CECAB26F8F1933B71F1A68DB8EC928B44E74C028ADA637A48B802D08ACB8E95D0EEE8009DAB346664CC7C6F4E69CC343AEABAD1758B7DCF04E84C9424343C123F0DBAD131BB8E62B45302768842BB8D5212E0D20BD6E2C0AE297CF6D3F7A159DD893B5E7D2D6E7FCDAB70E8480D9B9FD8832F7EF57E54EB6D4C1E38843ECFC7EFBCF7ADA81413D8718072C945FF6009B65340C1EDC787EEFD5BB86E86D115CB70E9A597C2F7CB8291D5892AFEE99F3E85952BCEC15BDFFE4654FAB859B28BC9B12A5AF506CAE522C62742FCA75FFB7FB07EFD3ABCE9D7DE844FFEF3A7F1D0833FC26DAFBE192FBFF91A8C4D16F06B6FF95D387D09FC7E1F838B57A19A661858B400F3168CA0BFAF80AB372DC66BAE3D0F17AD1A81CF498878CC159668E659AF513EE98A0E9B5E1DCA5732F9307B56A73C03D0671740B330C74A3B2B4FE499C96F96BC18BEB50F135FFC43F84FFF0760B594CA42E475AACC2FCA0F36B911A02DC04D289B53A6FFD4C692DEE3501BCF9662E4D277A074C5EB017748B5766BEF82D306BEC77DE0A3901CD378E1EE8775146A9A43965D68E487B6D8886E1B6FE1DB8FEE823BB40076412CE19125114AC5A24C92F4D4500F5F8FD1914C67D2F32666F4D43847AD26DACD3A4216089304F5CCC36456C4777EB44538D35BAEBB1A03655F6829B14EB2556BB24B599EC8E6C8477372E81299B9B2A397C6C80B93BD19F36C7FCF9B4D728016D739F2E4B9844E8A7F7A9357D9C28A5B55916B8E1066B40B65D12D4198B590464D0C044D5CB062092EDDB40625670087F605A8D776E3C24DABB074C9285207B8F75FBF8BBFFA9B4FA1560F51B633F8691B7FF167EFC15039442123CFAC1C491C7F1849D687F7FFD17B71E7EB6EC305175E8C62A90F43C3231277C74AF1977FF17778F8478FE3177EF15578E5ADD7A2E81230538C1D1EC3C8F002140A05BCF92DEFC0C8FCF9B8F3677F1E070E1CC6E4F804962D5D8482EF20890771D75D7F0CAB18E0A657BD1296BF089FF8B72FE17010C25FB41CA3E76E42C59FC08A91046F7AF59578C5651B848376C45D8AFDA4D4602BCA90D24AB5078E1A64BD233007EAE9D9F48CCAA201E8B30BA089A8F462E09E6F6C16A1A2A0E4B5E135B660F2AB7F066FDFD7003B906C4C6DFCAAF462E2E121197424838876A5D2AB2DCF3C7751E102DFC184BB0EA3AFFE1FB0175E06F8DAEFF98C02E8A3D018DD7A9ACE7754E6ABE055819F453132FFF42CD4B20C0F6C9BC496FD47D0B760A972A393892E96CE4D2A1C64DFC7AE51B47C962E194A0391F0CD04E6561D41AB2916A16CFA9842098F1F6A60CBB6A771FD0DD7E1A20DAB652544F185D24E6B7DAE4C9DAA0354FCBB854951F2BD1CA095F14FB7E09703F6CCAC79F6C260CE352BB7BADC0489BA6C6946917D04B5EE59360BE09E8804E708161B5362EEBC5DC3F9F38671F585E762DE601145A78091CA42D9FBB254A087B58766ECE24FFFE65FF0897FFD3252AB84248C5070800BCF5B8957DF7A0DD68F5650E0A6B73637C91DC1B7BFFB30162D1AC4828583F08A4BF0C4137BF0F0C33FC14B2E5A875B6EBC0403FD1EBEF81F0FE2231FFF3FF8833F7C2F2E38772D82A0853D7BF7498173DF9EBD989C9CC4E2C54B61BB74FC2BC1B253B49A0D38DCA51D1E0E1E3884206A60E1E265B8EFFEADF8D8C73F87894688566110C3EBCFC3F0390BE0F4C558BBC8C76FBFE5766C9CE7C18FB8F78A923E52F7ED5362A93B71F37697DE49BF9341E7ABD80E84F716DC8D8AE3A8087D2672D0F411705D471E1E95414728B975D887BE8FDA7D7F0DFFC8F790A1ADA47522834B757776EE66A6DA8155E38A78D24982CC3D0E43A782E6E06558FCDAFF05BBBC56F91F77ECEA8E3B8D9D9B2F9C76B37370560F47A8377AE56A43ED0398E1502BC1834FEC43031E8AFDC37A13DD141E63CEC614664E123F3644E49BDC6988A6543C4D10D42610376B924107418080BEC8F4F3C84AF8D4D77F809FBDF3769CB362B102E798F7C112ADB3341BE61DDA5A7B4E3E5A80587BB1F466D03940CFC639CF546B4CB70A2510F75A892A937D72D0CA894EA93A12EE88426A2649D166E8025A86B6E044352CEAF771C385E763CDB225D2E054F45CF4154BF01DFA8D58F0FD0ABC9203D2F89FF8CC7DF8EEF71FC3F2E5E7E03BDFFD219E7C622BECB48DCBCE1BC12FBFE1A7313ABA04D57A84BFFDD0C7F1E637FF8A24145FFECA63F8D467BE8E306211F230D6AC28E00B9FFF30AA93167EE7F7FF00175DBC016FF9F55F9626AA8347C630395E836D15A49E323131811FFEE027F8E1E687B062C502DC74D32BF1F4B6BDD8B3E7295C7DCDE5628F90A60EB66F1BC3BF7EFA8B989C6860E9C6CBF0BD27F761EFD80138831EE6AD5F8645F32BB870C542BCE5F6EBF0B2FF9FBDF780AFA33CB3FFBF33739BAE7AB72C59B65CE4DE6D6C535CB031361803A68412B221A411926C7A42FAEE26D964D32B210909A186DE4B68066C0CD806F76ED9729364F5ABDBEFCC9DF97F9E77E64A328124B0BFFFEEC2C7978FB02D5DDD3277E6BCCF7B9EF39C3366881B19A6CE27CFDB46AD8A83E61107F543721783C786FCEDB571B2827E6F55D0020A4A3DA05A4DAE6C2ECFE8217BE405E22FDF405EEF66B50D7337522E673920D2CA51AC2E30B9C92AEEC8B8A9FB881B15F81BCEA664F1BF43A0CE6D4FBD5517E4FF1A0CE72E0AAF57A6F4C71EF72C1A5F15D0EAD5CCB92A47E863E17CE352D59A36D1B8453C9D555F914C468D5DDB7A40ED2CD46E24E739A2C9EE4550541A77F2335771E13EAEDBF59750D6646F3776328A954A90362D62199B8C1EE0704F9AD684C385E72E52C6F832D4E24D62AB06A480BB4C775A6AA7E4BE6A5D0CFE956DA90704839A858381F9AD541B83330573D6A1725F1547A5941CDE38B78403A8946E771845403AE74B9DB1B2646C878095468BF6521E343875EA44C6D4D5AAF25F34DD81A04E594998A27C1F41DD26A0FB317459041D62098768DCC40804787EED41BEF2A5EF11F4079831A9842B2E5B4AF59012922987DFFCE6563EFCE10F10080479EAB95DDCF7C073A4D3191CAB93098D853C70EF6F397634CBAD77DCC4C245F318D350AF1A98D178924C26485B6B92679F7B92D2D20282869F07EFBB8B258BE7B2EAFC4B79E289B5DC7CEB1F386BF94256AC3C8F505E182C9D4877AFCC11515831969FDEF8006BD7AEC55F9047B6A294EA6953D04306932BE0471F5F4E437599C26615FA2E3B0A599F255432A7DA54FF7E438EC59BF11FEA74395941BF672A6877D9168016E258B82F31801180EE20BDFF0952EB6F221CDBED0EA378ABFA09D22FEFF7DD241637C32D07D0192D48C43794922997923FEFD3D8BE1A575ED4DF60FBBF86C86F783D3963234926573B0B17A973DEBFAADED1D4707C7F232E91CA124999F4A44C2212A09AB0D48831FE20595D53CD3AD9BA2A6F110FA075352A2F4D2359047D6AC047F1CDB929CB9C094F2645B2B78B4CB497ACFCDDB289593A3127C0EBBB0F306FD1D934D697E1A425295D940142570D849ECA74A700B4BAF815B5220B426E61F53CA6BD6198B7E299074BE906288E81F41317A007F4CEAEB44E541C2EC52106486E85EDA8D0808CA835AC2C412B4D2893E4D429931839A49AA67DFBD9BA6D275D31E97DA49930B19ED9D3A730BE711835E54564D3E2CB6192C9D8C4122689743EB1A4CD55577E92DA9A2ACE983792B9B3C753585C884D903BEF7A9C05F3E7525D5DCDE1A371EEBDEF0976EEDE4D69899FCBDF77161FFBF02A9E796A3B4F3E751F975CBC8221E52E608A57F4B66D87F8C39FEE67E79ED7B970D5395C76D145B41D69A6A4D0A7F8E9B6B63E5E58FB22C346D6316EC214F6EDDB4F714188FA6143C96635E2C9023EFF959F12E9EAC5F1F9898843E190A194358EA62C2FCE272E9ECB05F32751EAD391D43277711E2472CE6DA2E483934ADB2B0A0649EC4F3C714F02F47BA78276DF89EE01B41B59251AD2B0D642DFB6FBB036DD4661BA59E944DD5B4EC339B875E1CAB5FA015AC6BDC55E540BD36D0CA77AD1C7088EBD84AC31C475DC7863D7E3FF324E0FD299E61CE5BC1E298EAE1193CA389521216069425FCA1DB5CE481529B6514610DB082046AE2AB45513258C2C860336AF2A01457D99FD61AE2E4D94E385DD8BD24E2589B6B76125226AE22E6E414F46E360579C7DCD47F8C4B51F23A0D9CA6D500CFF6525541ED1DEC2A2C6EFE57B9ECCCB6B25788A91016586FA88BCEA7770259DAB8A4F546A7852BA41E6FB2E40E738689910940ADAE5A605A0A531E8F2D10E662A839E35095836636A6B317BBA70524922D114692B4D554D09DD3D51CA2B3476ED6CA6A2B48CC5F327B064C15CF47446699F6349F1B7F6F3FC9AD7E9EDEC644CC310EA6AC2E405E5BCF6A3FB0BD9B5FF189B5EDFC0CC19D32929AB26D297A0B5AD8DE1C3AB183776347B776FE2E9A75EA5ACDCC72517AD203F10C66F040887F3D8B071376B5EDA842F643171EA181A478D96E03515922B41023E9F1F19B0B56C8D7446E3E1871FC1AF67587AF61282A1222211F8CE776FC0B2C4D2D4A0B53B42C208A2575652585340E3D41A96CC18CEFCB135CC18D74858CE91DCA29C43612F624B766D3932ED2440BF03E078B771D039D0950A3AA787D5B414F94E33DDAFDF81B3ED5E8AB22DAAC273290CB78134F834C9D9502AF05695B6ABB5CD6885741A23197AFE1709D62E21AB950F9C78EFE0D8FEAFFD8AD764539E4DAAAA7230354866358E754469E98992D6FCA4D5208AF0097E0F04E57E06964A3277E91F35C727833E831237542287D7BD5761AD6A1058656ABBDE1B4A6DE1904DC4E96D3B869D8CA92A359AD5694B38ACDB75888AF20AAEBAF83CE5AB91D3A8CBE7E45232C233BBA247B757E082B68A7A5557FB8013DDE066E160401E0CD8B934EE0110F6D41A9E2C4F280E45634868808075CE885F65200AEF2CCE7432A66E8198206552D40F6DA0BDA59BD58FDDC7F891C35975C507F1899E3915C54AA739FBACA9DC7CF37DECD8B687211541AEFDE0FB18515644221E276AD974C5037CF7C737B36CF1428AF20368568CF2E220A5857E0C9F1F7FB0903BEEBA8FCEAE3E0A8B4B983F7F11C54525D87692EEEE4E9E7FF6691A473770D1C5CB08040CE251D14827F005E4130D28A0178F1A491117B9A93B01EF5E33D96C4A9987398E4FA5BDB4B6B6128BF6306CF870340162DBC7CE6DBBB0ED4222318D871F5CCDC1D66E923E8364186A678FA3B22CC888F2009F7ADF124E1D5FAB125BA498E94F6DC95A68E2C4A70A8613A740FF56E67192E2780F511CEE352A90E0B6A6E4BF0405E63EBA36DE02BB1FA1D83EEE4AB3FA1506B9A053EFFA567A3A71AD135587546FD27CD230B5223A8C51D45E743DA1AAF9D85AE94042CA3B1A9BFA5F82684FC524F4844808D30E74C52C5A7B62F424320A98B3BE806A7689078932B437452521010402B81E8DA48EB31BAEAA16728F6376E5E45E95AC067DE43AF4F4CA62542496A022518BC7881C6F259B88AA749A287EF6752458BBEB08CBCE5CC41993C7E0F36998390B6DA9A6857356C646EE02E1D234AEF4CF75EE76FDBAD527FF8669C1C1003D584637902538A0D4C839D30D501CB946A10BD0EA6B10408B31942F954290B0A6B48853E69DCDD7BEFD73CAF3D2CC9B3585C29AB13CB3FA15BADA3AF139112E5A319755179E453CDAC7638FBEC2D0B2022E5D320F279BA03B1927619472DB432FF0E273EB28C82B5234DB84D1435879F6744A450B8D8EA985D9B879177BF6EE53116CE984495FA49BAAAA122EBC601923870F514A112938FAFA823CFCE8E3BCB271355FF8EC27282F2E508D56E5E6E713D7141F8984A86E6C8201D1A6BBB6B8CAD50FE8EAEA63DB8E5DD40DAB6368553921F15371CAD9BEA39D5BFFFC38CD873BC91859FA020E0CAD64E4B4C9CA64EC9CC961BEFD890B944DAF7C29CAA3BF79983B67DC51FDFE26E11B54762739E8BF8313EFC60A5A0184679AA38A2A3B41616627DD1BFE0CFB9EA030DBE12A0CFE06A0DD080EA90E05A0FD591F8E9EC552006D90A15855D075B750A75B000020004944415402D0D50B71907467CF95E7DD02D0A2A515C37BC15543239985A35D195ABA63A41CD117FBDC705751AD880C4EB9D6B9CE80AE75A75B050B4088C6593A746E2A8A0C28B8EA17A579559C74CE074DA05350D6D52CCBA52823D19600745B0B762A8634D77A2C1FAF35777030A671F9F92B682C0D2ABF63D719C5FD5276DCAA60769406DA909173CF785F0D09AA2661CEA9CE95D6BD19C5D12F97F340DC6D0A0E8C74E778E7C14DC21CFF9CABA07326FC69510B59690A627D94FB1C4E9D3985D2BA195C7ACDD7F9EA672E65DEAC466E7D6413B7DDF3143E3D48301BC56FB6F2A5CF7D843973C672FD377EC390F2123E7BD5395496848825E2F4983A4DED511E7D740DBBF71CA5B3334A5158E3A2E5D35876E6A94A9E97D583F8F30A48C423B41F3F4E229AC11F08505553C18886A1F8A4076099D8599D74BA88BD4D0769397E8059D3475310101E3D1F4D2BA1B527C9B36BD6B365EB2E8A0BFC2C593883E9931A4927234A0D65DA1ACFBFB885DB6EBF8DF3562C62D992A5D8199D071F5EC78B2FEDA4B35D926E7C64C51A36A8110D81BF6E1863664EA631BF85EF7CE6328696172B973C15AB25BB2875EA886CD0FD64D580518E06C9518639F039C941BFC7386875250B372A9202018B3885C96DF46CBC19A7E969F205A04FB8E5C2E6DDE879693C8922C16FF914E86475011E83B4534CB76F24B5177C8950CD99A0150EF858FE6F0174EE243E61FE64506EA0D790515B5805BA6EF28980DEB11E93239D11A5C1CDFA826A4C5BAA63194D968EBF4BAF7B23CEB225963D89B2729572D5258844979BAB886CCD52BCBD3405D58656A6343D4F6ED57A546A18572A67CAE45D2C42F7D143AEB5A899E55842E3D5BDC7C81B3A924B57CCA752137090D2CBF5E996B7E8D5EADEE7EB01B4E656F9396E5AC5550DAAA007AB36DE4CEB9C73A87384BA70C44BC36D0CBAEE759286221E1B6E1A8AF2DA90C5459CEC94B42E8399B5F0A512CCA828E4B40963282B0CD2962CE5EA2FFC9CF3168FE7FCF31671FB635B7962F516C5EB868961C48F316DE230FEEB7B5FE3AF6BD773CF5D0FF0F58F5DC0A8BA72A2B198CBC7A71DA2C93C1E7E6C1D2FAFDF4A4D4501575FB280699346299FECA2F26AD25616BF9EC2A76531B4009AE1C7080609E7FBD0B48C6A3E66D21ACF3CB385C71E7F8A050B6671E6C2E9E407D2384E05878FA6F9E2377F446B67125DF3E193F9804C3B0B4E9FC897BFF011C5B1A38538DE65B375EB16B0BB3965E61CEC6C881FFCD74D6CDC7800B40282FEB0AA8E934E86B8CF265150882FA031715625531A4BF9E0AA73983D6E0441595815FDE8711EDE94A1A2139513577F6B68D0DF4F521CEF298A438D978A524140C49061930405E92D74AFFF3DD9FDCF52E0443C7317F792578A8341E3A86A4BEEE8F8C45046AA48DD5292AEA45E4CAFD140ED855F26547906F8CA55C2B41BDBFD16C31FFF7FB118DE36B03FBFB51FA09577A4A2100C5DCC9EDCB053358526FA654D23E5381CE94A73A4BD57191159BA441E4913CEA794086A7BAF820E5C7EDA7D0E19FE70E52A03EF74F07B76C924CF16D0631B733245A96A5DA6514808791C2BAB61F676D0D7D2A45245E296CEFE989F4D4D47A86F18C105CBE613F6526772D89B03E99CC78300BEF84EE42A6AB5A078AE74AA09E90D960C00B45B25BB16A2EED049FF7D241350864F1C87A424B54B97CCD63C573A990C4CABA82B5131C43226697987D924A4E3643332CA9DE0EC710DCC6A6CC0F0D944B41A2EBFEEFB7CF75B1F65F2C4A1FCE1CECDDC7AEF33383E87A016C3891EE5F31FF920A7CE98C4F5DFFF394545797CFEAA73A8A908D319E92693D549993E7A5345DCFDE06AD66FDCC899A74EE783AB16515098879E17E2AEBB1FA3A1610C93C655535116242C61BC869821F97869DDB3883A6ED1C28558593FAF6D6EE5FBDFFB21F535613EFFB98F5055954FD22CA2F958828F5CF73DD299A02A688286493A7E9C49934AF8F9CFBF8C93CE609BE25C57823F14249DEA22954AA8C5BAABD562DBE6A3AC7E711B7B7637BB610CBA4E1A83B46613372C02A3CB193F671C4B1BEBF8F00567505F1E941943C549AB0D8FD73650C64B3980F63CAF06C0FA2440BF8700DAD3F3CAF08902319178A528486DA27BE31FB0F63F47BEDDABF854B7352140E472966EE4B7465655893A862DBFEB1AB88BA42CA117D0633450B7EA2B842A1680AF6CA082FE9F0668D9B97B3AD25C91EC1A01E5161D97475741209EE7B254CDD1ACCDA1CE34ADDD7DCAECC83482646C5D5576725FC9DE535B7DA16EBC14B07EBDF83B788FAE84D1F361106F0E6586EF20FD34ABF73891634D4A6217B77DEC8DFAD97AB085C6B1A358B9F454FC59D14F7B01089E1263708925E0AAD828AF999703E537AB98079A8239D3A381041475FFACA4749B6A872169302A815B1D0B71A54B2B109695409A6669C7212E9C7326862F1DC3679B8C282F627E633D434AF209847C50349A8BAEF91605451A73E7CEA0AC6C044F3DBB06534B2927BC99931B59B1641E99581777DCF35746D557B26AE11CFC8649D44CD017873DFB8FD376BC878CA5D3D51BA7303FCCECC9E329280871A4E50877DFFD80CA61ACAECEE7DC658B386DEE294A237DEB1D0F535B57C1B4A9A3691856455E30C881C3311EB8EF118655E7B364F13CF28B7C64EC3C8EB425F9CE7FDECC91A311AC7452D12221BFC5D2A593B8FA83E7A09B593427C0C1C37D3CBB7A3545A53E16CC5F882DA3F89D322350C04B2FEFE4B6DBEFC5670495ADAA889F85EEC80675E29561EAE7CF645481CEFB168EE782534751120E2959A6E0B1E7AEE0D21E39DF7435DA3BB89A3E09D0EF21807605F06256E357DECDD29848939FDC4CEF6B7FC46A7A96FC6CB70BDEEAE6F2A7AA32F4CA51F17950196D22B4F79678F14A48E87974FA46517FE1D708952F04A3C8739AF720F27F526E37F81CEE97CEB92F402925D47B1FD09F8A4A236E6539D411A7332E2E6B22999346A04E322395A39BE23C78FACE3564F7005E2D68FF8D5D82A71557002D7234CBC1EA6BA7F7E87E65331ACFEA34C57D6C3D789C118D8D9C7FF669E42BAFEE81F7947B6FB94F4E01B4F77E73AF3B5711E7C0FAC4C6608E677E938057A98EEDB43A5F2CA17C646B6F5B988EA58CF71D53C26BC5A81F526686949321944C114A25183FAA9669E3865311CA5218D2F0F975B2C15A9E5B7F90DFDD76177A28C89CC9E358BC600A631AEB58F3521343860CE19BDFFE291D5D6DCC9F3E9C7FBDE67D14EA3E92C918D17482E6E349FE78C723FCCB454BB970C559F4260C7E76C36D3CF8E8B3EE708B93E0473FFA2E81B0CE8B6B5E5640FDBE4B2E61FD6BBBF8C14FFEC084898D545584993B71288B4F9B816987D8B37B3F9DED6DCC9A358170817B686DCD4F774F80752F6F65DB8ECDCA877AFE69B31937A606B27DD8A65C0979ACDFD0CC2DB7DFCAC2B366B164F1B9BCB67E3F3FFDC52D2492BAA279344906A7C0EB4F487A3958864677180A46D6316AFC28EAF3227CFB03673075ACA841026A91367CD2CCF70A8B7E25D04980FEA737DEEFC626A1CA04F4005A2E58BF66124E6EA17BE39FC8363D4DA1DD8978BAA80B5E350B5D10C881B60BD05E3E9BF2EA70D51C02D0EDBE46EA577D9DBCB2F9E02B72A757073CECFFE9E3FAFFFC8EB966E520BDA97811AB800107650B7AB83BCEF1484A4DB3D9BA4F558AA2D4C8588EE25D5D08CEB5D9739CAF7BB1B87EBF6FFF96ABE995EF894773A8CA54B8DC68175D87F62A1F8EA40547537E36371FA7B47624975DB8884245310D786A0C501C5E55ED5987E67865B5DC7A137FB9BF0FF6DB707FE64652B97CB248E75CB056F155880B9D848A18AA8296DCC1AC935615B4701AB62C2A599BB499568648464A23D39DA2B6BA8C8A7C8D398D654C1859AD3C928D50094EB08027D76DE1DEC75FE460D37EA64D9E4255D5505E7CEE451A868D645FD37EE5A571E992A99C75EA644A8A8BD502B1FBC0019A5B7A79F4AF2FF2F10FAC64E69471F4A5FDDCFBC8733CF5FCABA4A3BD8CA9ADE0DA4F7C944426C5732F6D61DF81A3CC9B339F75AF6EE3C5759B948706768C1923C3FCE05B9FA1B2AA8E5B6FBB877BEF7984FFFCFEF54C9A56A71254C4CDD1CEE62BA04E585155DCF80C836C26A180D3B103D8593F7D9134070F3751581EA4A262044F3CF22ABFB8E14E6C2D9F3C7F005B16FCAC7C5E5975BD291ACBD18905FD644B0BA9993189116569BE7DC56C4E9BD6882153859E4582D2B17B834C2E7DF5068EE36493F0AD2FBC772740EB6ACB2AE3B3E23816D44CF2323BE97CEDCF387B1FA328DBAE74BD392F871C8FEB02B4A39CD272491FC28B29A37EB224F502DA7D6319B6EA6BE4959D06FE925C10B80B5EFF531574FF93BD490485F7A6541F4F5E90A19171E0585F8AFDC7E364F0A97C4551C3A66D9B9497C7E8CEDD7A9619B9AAB4DF78DD8B337A07EFCFADC0DD1415F7657B8E471E40B71DD84D369D2065DA74640CB61DE9C62C18C295979E4B95CFED0178DB82FEDD41AE9276290E91DDB9809BAB9ADFBA29E84EFF0D36DFCF8D744BD3CF724C6534A2653405D0AA594A0ACB4A6167249DDB51064096A23D52A4620607761F279534C9B3135CBD6C32172F3F955010457304C301D24601DB0FB6F2F033EB7975C31EE27D69F44C9AE195A58C1D3B9219D3C631764890EA623F43EA6B55CF64E79E265ADBBB49A52DC637D653901F226507E9E88ED2D6D14932DA47797E88E2E20AE2498B7B9E58CBE3CFBC4A3858A6A472F14C1A5BE9FC939C3EA992AF7EE6838C1933868DAFEDE2873FBC914F7EFA439C72EA68D72F2463A365A53360933112AAD7629AAE4247A818CB0AB16DEB4E8EB71E64E6EC69840AF294F2E3C8E1240F3CF23CAB5FDC40BC2FEED1588E4A7A4116345BC3CC68A4FD61E2A13005931A193BA6908F9DD3C8050BA652289FADAA05723B33E905E514436F48BC3F09D0EF258096C905C9BF130324A9006430D624CF3948D7A6DBB1B7DF4B9175CC1DBC908B5B55D1EEFBCF01B42811543A87787A788D2D0196B4E8A07D63A93DEF0B846A17E218A5EE98713FF8BCFD0AF31DFDC69B01747F19EF5A36BB0A424735B38E44121C6C8F92248CA5FBB11C8DA4659112D31FF1B850F239B7F9D7DFEE54032CDE77BC71DD77F25A07784677AC5C8E970CB618421FC47A39D6B41B539CECD2197AD2364DD2BCCCE4B37CC942668C1CAA8650946AA49F8376FF2E3CF689B446EEFB03432A39F0CD796C28537D4F4A974B43C9C9ED54EA8980BC652BDE55D40B12086B3919321E072D715722B1CBA41284823EE64D9BCBEBAF6CA6A074183B36BFCE9C5121AEBE7439A5D2C4336CC2613F7E5FBE5A240F77C53878B88B743C839D49139608B6821021493FE9EB20A45BD40EABA7ACB28264C6229932559357334471234BAD9FB4254E7E594509998918564ABCA635F6B5F62A995CDBB14E1A468CA1ACA29AF55B36132A0A73DD07CE62484935056103C3D0D9B7FF20CD873A7975E326B46C2F4B17CE63FEECD3D1758B94D64342C43B7A899A2854FE33699D3B6EBB1DBF9E60D5AA55048225ACDF7880632D29CC6C8635EBD69048F672F6D96711EB8B52595E467B6B1B8EA531715C233FBDE13E9A3A12A4CB8A193D652873675572EDAA3399595BA58E9134166528462DE32AB9E86405FDB6AEB3775F052DD3656ECDAB3C21C4B8C631091BAD746DB98BECE6DB28CA34BB6A82DCFCA097FE90334D52CA05250893555E09CF14179DA1881E7D14D54B3F4970F472B27A19AA8D98F31A785B47F6BF71E7C1003DA872EF77F5746D2F046B684964D87EF438195DC0390FC717A4570C73A429E6F793364D34C350A3F1025E224B55CA54C5BDEB8A977627CDC4B5EFED6F13C4DB43805E4DFB791A10C3B1F13B2666BC8F634DFB49F6752BABD144264B5BCA60737B96F18D63B864F9FCFE2941B7BA1FA8A67300AD36C7FD46FC83951B83AC41BD2414E53A37C8F428378CE2DA853A642DB777A1A2ABCC8C3B88E2D8A42D99144C61CBC460C6C44C2409683AD75C7201A5411F3B0E7670CB6D7770EEC2C95C7EFED9E40947ECF711CA0B103634C5E3264D8B442A8D9996E93D937822463223F48989158DA2654D468C184E79551581FC30D9AC3B651749D81CEF4AD2D212A1B7B78F82223FE5250594E487C8AAA9C4940A37E88E88656B127FA090AC96C7C34FBDC8AB5B76316BE2689C74925933C770EE390B08E70558BD7A0BBFF8D55FD8B36B1D975DBA9C2F7DFA73ECDDBD9FC2CA2C43EB46B16F7F947BEEB983DADA522E5871016D2DC7308C143555C3D8B7A7835FFEEA7676ED6B65C890022EBEF46CF24B83CC983E55B299C9A43314E4E7535926BED4016EF8FD93B4C735EE7F760DD9323F23A657F3C1A5A7F0D125B394939F8ACC92068FAA877274DA1B50E76405FDDEAAA095E85D49672D358AEDCB6694595274CFC3645EBB89C2C43E3580AC00DA1B353DD193437869A1085C1DB43B05274A8742E25A2DE5A77E00FF8CABB08C6A2476A95F26F1DFC0DCB7F5AB83005A55F039ED8607AEEA9C5761AB36EBF6B6D0858F80C451593A19CD473C6592CA98AEBE58B9C1B94E73B99101979217EE3D5753CB5B1C641BF9365EACEB692280EFCE1F8A9E5C005AB79238E914479BF69110595922462299A0C70AB0B34757314F9FBCE64A9783CEBA76B0B9B82AA96495E84645669D08D0AEB1FEC014616E8C3B07CEB9AA7A7005ADAA68F1D73025BE4A4CF64D358E2DCF9D16B99B74B3EC145933A552E0DB5BBB38DC748C2975F9FCF89B9F62D3CEBDDC7ECF838C1D3F990F5D711E0DE5F94A977DBC3BCEE8BA7C65DC9F882548A633C4249B309B211AE9C0AF4994551A3393A6B4B488EA9A72FCE1207A5E18C70870A035C34F7E7E077BF61D56EE73A6E9E0F365185A5DC4D8861AAEF9E08594E443261A57FED3924C93CE06491BA57CFEEB3FE570BB896EC7F1D1CB84F1057CFDFA8F3165C218FC4690FDFB62DC7DDFBD949695515A388C5FFCE2279CBB723AD75D7B2D4F3CB28D6F7FFBAB2C5E329B4F7DFC63D40EAD226926719C3CB66C3CC48F7F7223475B3BC90BA6F8DCE73E4EE384C9BCB07A0D1B5FDE4055553923470F23954A72C1CAF3A96F28E72FF76FE0DF7E70230989CD5A3889331B2BF9CE07CEA7BC584CFD7376D1E2C3EE35E7DF48A59D04E8F716402B3582022D4B511412C713327A49343F4DEAD51BC8EFDBEA02B4023AB775956B81293DA6CBDEBA89D16A0B269D23A102C2649C320AC7AFC07FE697B07C43DD440FA5157AA378F36DA0D8DBBD6BAEC0F0140E8AAAC9A92D943E57027335B635F7B0AF3B865D54A6A44F028EB1B4AD8642644BAF5EB37283736586398076E5CCEEB04E6E864F384A2F1AE56DBD5AF5A80AA05D499C50474271C8A28999A6E55033D1AE76E50B9D4E448966FD34457DF425D37CF173D76299F2129596CEA3AD64D433EB9A1529DED99D6E5421C1F2E555C8B931EF9C87864B65B8E3D9FDB6A1DEF4A0026BE5A5E1FA6A88ED67D67413B92D4B5395B565C655E0AB480F6A4AABD8B6711B99EE66AEFBD02AC64F9A406B5794475ED88EDFF073EEA2796CDABC8DE7D7BECC9253C773FE59731956554A5F3C4D9715C04C25D1D351F20C8D800C45D9168585F9F8F2FC98BE10514DE7D935FBF8CB7D4FB363EB66828120A140B9A23CB2768A78AC17C7CE30765C1D179D7F1673C78F25288B4726419A20FBDBD35CFF6F376269D5E8768C803FCAC24563F8C4B597525F5D8E95C82A8B517C3E3A7B12DCFFC0F36C78ED55268C2BE5B28B2FA1696737FBF6EFE0E24BCE513B47D3B2954F8BF86C63FAB8F1C65B18565F475EC0A161442D3B77EDE67737FE815020CC87AEF90079F93ADFFBDEF718366C18D75D772D5902DC7ACF736CEF49503A7B12638A2DBE7AC999CC9A3882406E53A668C5DCB9F28686F449807E6F01B46B7224A025D48444576509F91264DBD6115FF73342DDEBC5C9C07BD3FD75A3E70F2DDA4E77B2D0ADFE5C347401D0876387312BE6527AF1CF7142C3D16D89C792A686F068EF44E7F0B6F0CEBDF30900EDEE02721AFF9CDA42EC6E1E78612B05B523C904F2D5B45B329D266EBA2E652E6A7A69318A3A18308C722B680168B78276771AEF0CA0DDC003E1C4DDB228E73EE7B74DE552D7D57E9C9EB6A3C47B3A48F6762A3FE8CE6C1E5D098B25CB97336EEC28CC8CEBF721120B792C51802812CB9B2E14A0CE8DA0BFD1A16EB001923B1538A0DC109ED91D5C9166988C45BB433A32BA2D89DCE2D627064822934F24536066280BF9B9EEFD2B189A57426B6F8ACD3B772843FD8AEAE1DCF2F8165EDE7A809838C2193EE5A459CA11AE5831932B579E43C6F6F3C46BCDDC7CE31F9935BA81F75DB2989A21418A744729219C4021EDA69F7FF9D22F696B39CA9CA98DD45705F8E4C7AE60DF9E6692C90CA15098DAFA917CF747BFA32B9E66D79E7DD486E19A4B5670D6693349581611025CF7D9FF24952E269B89535692C7E98B6633766C232F3CBD86F623DBF9E435E7B372E512E2A92C896C0ADDF0E31720CC485ABA414A1A887E1D2B13E4AE7B9EE597BFBB93704119634637D0DEBA9FE9531BB8F4E22B79E0BEFB292A345975D14A74239F583CC2D0A165E83E1FC7DB3B185A55AD4C98D66F69E2DB3FBF1DBB710A2387F858DA58C4C72E5B4E5E3F40BBA7766E706540067BD20FFAEF22C4BB8D8356622E4FFD2E13802A27CDCA12F2A731225BE97DE10704DBD76290F200D9032B714793B342840F52452B3ACC8B53121ED65BC5C5C92B121847F595BF472F1AE702872E668DFF0B00DD2F1F75F5CAB96EA7D4C3C7226976B444C8F80B9501BE349AFA120992968323EE74B23BF01A83DEA5E111252E90E6DCE9E44FE190D59CE0DF4DF67CF3D328B760B82FCF759C930550F968E0108F44E83C769848FB3152BDEDC4E34962B69F1ECBC05F5AC3CAF357120A045D532A014C99F8935C429564E27A6E64A582F62608DF1CA05D10FE9BC6A0F2A9C82A5A4380D9925C41CB54CDE5BE78CC0D631025432A43527CAA23BD445A9AF9F6751FE1D45175ECED4AF183DFFD9931430B59BA6439EB9B4C1E78F6359A3B7A557C6D36D14B55A88D65F346317DF4280A4B87F2D496C33CFBF40BD8D12833265573C5856730B9A19670208F24A5DCFDF46BDCFCD82B983D87F9DCD52B993DA39EA99347BB3981B259B31D3A7A2C5EDF7E80B59B8F72CB5F1E259F24CBCF98CEC7AF5AA17CCED37A80C79E5A474F440293431C3ADCC62B5B7628DA2493B2D0D287F9CAA7CEE7739FBC8AEECE084FBDF012D535358C6C1881960DF0EABAADECDCBD892BAEBA84C2FC52FEF29797F9D98D7792C91A989938F5B541BEF8B9AB0887AAF9F10F7F4659718AAF7FED7AB66C3BCA5F9F7A94B397CF5580ED0BE86C7D6D3BA9648A8AA175FCEE914D6C89852836224C2849F09DCFBE9FB0DA050E4219AFD838A1DD71B2827EEF54D00AA0D5EE5D00571236848376084A68ACD944F733FF81FFE8D3F8901AD36B4A78DA6195482C35A39D33867727EAA4EA934942F999DFD6E8D1865379EEF730462C00A90174C9257C8334E81D14C66FE757FA4F6BB5A6E4E81AD7063469C30B9B0EE02FAF511573560F90B42D7A1349326AF1F20D18D3A8EAD6F5B1E81FD576EB677578BCFAD703E8B7F30ABD625F19E9BB5590323A5295B9ADC0598E583A9120DAD946F7B166E21DC74844234AC5205440BB5DC882458B983A69BC02521945D604A45DA4EA0768A1360464D59F9E8FF3008D3110F63A58D5E102B2EBAF2155B6F86BC856DE110E3B230A051B53D684545AC9CDC41BBBB5E518913601E80F73CE8C096C3E1AE523D7FF3B2B4E1FCF79CB97B3767B1F8F3FFF1A6DDD510A833A85019B9240371FB9E25CCC4894BCC222761F4F71E7BD8F515A5A414FF366AEBDE21CCE5E700A863FCCF64316BFBAF92E7C8545CC1B3384499506975CB94CEDF5A4C1188B27C8F3870804426A57F39B5B5673B82BC58EEDBB290A5AFCEB875650535EA0169B8448021D3F66A680D7B71CE267BFBF17530FC8765201F4673FBA820F5D7A36E9BE287BF7EF2365690C1F399C9E9E20DFFED66F693EBC996B3E7C01CB972C61D3E6766EB8F9018EB5F529280DFABAB8FE2B575114AEE5A73FFA258DA3CAB8EEDAEB78E8C197B9EB9E5B5879E13CBEFE8DCFD3D39BE43FBEFD6FAC5C7936734E9FCB1DABF7F3D8CE5E8A02716AFC1DFCE2FA6BC857BE292E3DE8328E6E21E09E7F1E709F04E8F71640ABEA4F970C414B8D74FB6C8DA05FA2855AE8FAEB37F1373FAA2A68D7AE32A75A106B4D57D9A1D9E27FACE17724C9C3C2D26D2CC56BEBF81C9D3E6A30265E49F9FC0F8151E301F4FF10BD91FBA84E4068D78F53D232329AC68E633D6CDC75989A8631CA6323AB19F4A6D3F42492388670D1AEE6598E536E3AB0BF2FA32E86C1DDF41C3FEF2928DE2646BB8A901C40BB1ECE4A61A3ACFCC1CE64B0E25122C78F70FCE06EA29DAD6AE4B8CBC9E760329FCAEA6AE6CC9AC9E89123F12B125B3C323C8016A016DA44F1D16F04E8816194011AE3443BD15C9495FC5CC9EAC494DF74A9974432AD067CC4DFB9A2B080A91347E37362649311CE98750AE5A152F6B444F8F16FFFC0A253C63363FA0C1E7A692FDBF71E24E4877C43E39C33E7D1D37E94C963EB49C59314951472A0B58BBE680CEC20CD3B3772CEA2390CA92E2792D6B97BF57E9E78E6392E3A6F3E2B17CCA4BE5027934D2A00AD1F3192FCA202DA3BBA39B4BF995367CD23A9FB38DC19E789E737F1DAC657593E6F02CBCE984D50CF12CD686CDBDFC2EE7DADEC3ED8CE4B9B0E621B214535F9ED18E3469431736C31EFBF782113C68DA3AB27C1D36B36F3E4737B58F7EA1ECCF4314E9956C3973FFD69F2F30A79F695FDDCFE97676939729C505E1F975FBE80D9D34E61EDF36B31748759D36788350A478E363379CA68A64D1FAFBC4B1E7FF219A6CF9846417131BFBA672DAB9B7B69A82FA2C06CE1F7DFFC3805EA20BBDCB314489EF0D51B56C94D819D1CF57ECBCBEEDD487128805695AF709632B2AD13F44B15DD4ED7935FC37FE0217C4ECA7366F36A446930E92EA521002DD4886CC31D4905D12D35DC2106E6866390D0CAE92898CCD8CBFF0D429394DBD789B741DBB69CC462F01DDEEC7B6F13F83C0C75AB0D1596EAAA4E62683CF4D276D27A98CAAA21D89A0F4B37E84AA48848669DD0031E8521CDD49C694D2EB72B4765B84D427951B9E6A7C7A7BCCDD7E94682B9F1532E55E23582727593806C3A41A6AF8BA37BB7D379F400D9780FDD561E87D3F9D892805D51C1E285F3195653832D2E7B8A8F769B86A26291F470C5430B972C15B0D248CB48B92BAB53E0AD425EBD6414F1A296AA5938683545282929194C69022A999D4D3A2546F6599C9449757E3E172D9DCECC89C3C8CF0FB1F1B5BD341F35195253C9BEBDDB691C358AF64882A736ECC21FD0593C6F029505851CDE7F80C307F6337BE61402C19032A2DAB36F174B172F24CF2FEA8E0441BF4E7B6F1FCDDD16BF7E7003BB766EE1F31F5ACE9279D328CDD359BBE66562B13ECE5ABA08573AA0E800002000494441545F20AC5259FE72EB7DCC9C3899B90BE6D1D213E7998DFB79E0C1C7185B5DC4C72EBF90B2904677D2E007BFBA956D7B7651337C141D7138DAD243400F61C8F14927185ED9CB6F7EFA59C68D1EABCE931FFCE27E6EBEEB79B71849B5F2B3EF7D9E65F367AAE3F1EACE5E7EF8937BD8B5A38960304E4343884F7DEC1A029AC65D773F42A4B793CB2E3D9BD9B3E7B2FED5ADECD9B39DD9B327523F6A0CBACFCF137FDDC073DB9BD96F6A4C9A584BD86CE3F7DFF8288503C1468A62544BB8D2BDCB797712A0FFE1E5F66E0468A97E95304CF913BB9CB45435617F275D8F7F9950D343184E4A350065E4598656048C5D80168A43C4795EE8AC12CFABE02CC533CB63A709D3EBAB60D8B95F82FA5540614EECE01D4F39EB3C899A3A809E119387DBDEFAF10F8FFD3FBC43FF63BBCF27A2C243BD69EE7B7E33C31B27A88B3F6B48328A41772C49426C321547EF6E28DDCFD63332EA7FB2BFD138793FC93511FFE1ABFA9B3BE4F2E87291B1EE73BA5A754577D8199C648CD6037B38BA6F27C9EEE398B69FAE984D440F6105F3396DCE6CE69E32CB4DD496AA59F4DB8AF2D0DC316D098CD5DC493FF115513ED58A53F6F204C5465452B8BD3C4191CB09285B02E08EED26A364A4312863E81699741C9C34C908647A632C9D378CABDE77364EA888EBBFF13376EEEA66CAD8323EFEA10B4839856A0CFB8535EB195957C927AE5E456551315B5FDF22BE6E4C993C96A28222C56D63A508E587157D52921FA6B3ED38C7BAD21C8DFAF9CD23AF7260CF362E9C5BCF47DE7F21050178FCE917193AAC8EE953C770ACB59B516387F3C8438FE3CB9ABCEF8ACBD97B28C2CF6F7998B5EBD6B3686A03D77DE0122A0B4274C61DAEFF8F9F3067D6582E7EDF0AF61EEEE5A65B9FE6F5CD7BC8A652F8CC04679C52C37F7DF7D354561663393EB6EDEE664F530BD1588458771B1FBEEA527C5A5251622F6C38CE0F7F7E1F4D078E1334A22C5F3C990BCF3D9B90E1E795F59BB9FD8E5BB8E0C233B9ECF22BF9F4BF7E8D834D7B983F7F2ED77EE63A7C01876F7EE316D6EE3840DEB871CC3F633205561BBFFCEA0728567D901C95E15E36AA5EEE17F59F6C12FEDD2BEEDD09D0CA6FD4F57256D3821A797E8D7C5F27DD4F7E8D60D303F8EC840268F14096F69E4F7C178483D6DC8A5BAE25D3F02C3295D6D90B45557ECA3ECC4021C5D3DF0FA77C16F4AAFE6D9A7B300701B4C7ABB9BABFDC14C87F732CDCFB50DC0119F7B1646149A2B1714F2B2FEF69A371E22464A0DBD4FCC46C8DEE5882B4C8EFD4E0C83B9104BE11B8FF79A0EEA739BC5F714D7A5C8096869F6E9B689924DD2D87683BB08FEE96C3247A234A23DC91358819794C9C3A83C54B96E0377C4A37ACDEB770C6968D6688565974BAAE9A43260265F044388AAC786A781E1C02C2E2AF211C764EB1A18CF995BB9E9822995E08AC501E09CC541FA36A2790272DBFF83EAEFE9795EC3BD2CDCF7E793BC1D010962F9DC5FCD3A7703C11E495F5DB30DB3B9832A68EC69195AC7EF209E6CE98496145A98A762A292C252CE7A09E22ABD9A4C487423208A3497A1206BB5A92DCF8F0CBECDEF61A3FFDCAD54C6B1C4A81DFE2999736D2118973F9A52B292AF2D31733B9E1D7BF62FEE9B33965DE4225097C65472737FDE9018617A6B8F6AA8B28090768EF4BF3B3DFDCC4072E5DCAE233E712B761DB9E2E7E73E3BD98C904F3E74EE7D4D98D8C1E518EE5887DA82C9A85AA303184D2936C45274B262BAF37C0D32FEEE3BB3FBC8D9EBE2CF9FE34238706F139167535B5ACBAF8729A9A9B30B30986D60EE7F9351B983C713CA79D36033DA4F1D2BA26D6BCB089475EDA807F54030B4E9B44195DFCEC6B9753A442997329EC5ECAB78A311B747E9DE4A0DFFA627BB702B47220D62D55A9398E501C1AE14037C9B53FC4DA76273E2BA2B206A57A1280164AC36D040A67ED72B496D8D9E546BDBD2168496A117031F520DD053318B6EC1B1835D3A47582A389AAD3AB4B073302B94A57191AE538DD7F1EE0DEF49E2A4FD01BE0D0746593D967693CBA66133DD93C468C6E44B3D30AA07BD259BA62094C2FB2CA73D87F072FE09DF1EC6A247B90D9D260F9A25034BA9D25A8D9641311621D6DB41F3944FBE183741E3BA4AC5023199D68A09CBAC6899C79C65CAA2BCAC824530444126DA5D5FB121F67D12E2B3F684F232DDF5334869545135A43650B4AD52C15B7A7DC302D457FC8EF5AA9A45AA0E322B54BA458BC603E13EBEB70A21DCC9B3512BF6EE33334749F467BB7C3A148922F7CE7F71C688991EFF331A930C555172F533F7F7DEDB35CB1F21C3A7DE53CBC760B4FFDF505268D1ACA973EBC92C63175DC74EBCD541797B364C1220E1E6D2762867872C361563FF70CA38704F8F4872E665879087FB890DE588A17D7AEA7B5F52813C7D6B36CE962CACB0A88A4B36CDEDDCBBFFFE076FA7ADAF9F247CFE1CCB91355959EB275D28E8F3CC76448651976D0A746B3240650826085C697516ECB14B37F3936421B895A4657B40FA44867FA300262472B81088544123A8F3FBD8E87EEBF93A50B6773E6A2D3A81F3E4C8D8EB7B476505454C4A64DBB993DF7747EF2D31B28ABA862FCC4E9FCFCE7BFC1D08324F3F2088EAAE7CCF95328A68BEF7FEE52CA0CB105F6288DC1A1172701FA9FBB3EDF8D00ED6E8F845396E699F0AC3EFC01080722687BEEA273ED8D049347309C841B082B9E1B1284EA255AFA84E210372E19C9533CB6DB3C14DDB0EB4CEA5207C71841E9DC8F5339F33CE55FE020DD75AF23AD9A7003C7581A204AC3D03FFCF1CF1DFFBF7B2F6F8C505E9BA5416BCCE6DEA7D711AEA853DB62194D9614EECE689AAEB854426E94D5E0DDE3DF7BFC133FFB375221FFFCEBCF1D87DCE3B9BA6A4FBFAD541E620DEB60C84875324A775B2BED87F67160C76B6493195269875E7F19764139E3264D61EEAC59141862A69F560D2AE17615E86771134094878654D22E080BCDA14B828B00B470CFE203225FA624A228830BEC94A97CA9C5A324A91944FBD254550C25D9D6C4F0723FD77DE4FDECDEBC9509C36B19337E383B0FF7F2EBFB5F62C3A104C75A2314692657CEAD519CEDBEC347D8B4E6393E72F985B453CA6D8FBEC8BA75AF337678355FFCE8794C9E349A8EEE2E52BD3D541517D1D5DD4747C4645F7B967B1E7D9A506198913585D496E85CB472053E43C71F2C50F98CF9799E03AB1F7EFBC71768EFCEB267F74ECA0A35BE72ED2AEA6B4A4967D26EA880E510B092549715A90945A5159753DAF093148E45F7ABDD879571DD056537A254A372CD18367E23432A99F6405B869FFC585A8023879A195E5B8526C9296993F64E9B175FDCC4EB1BB7F1DAA6EDCC5F74364F3DBD1AF4003E5FD87D4C4DA3CFB0291C375CA5B514395DFCE7E72EA354F7E60EBC895E654DF6372CDBC926E15B5E6DEF36807659D5018A438CC1257A29E087BC601CAD773D1DCFFE1AA3ED65F2EC1ECF50C95DC18583969B4F19C50B60BB34894093A20664FB2702B1AC68890D7A7CF5A4872D65E4F26B71FC7522C25351B56E6BF2C46D9A3B91E80601FC3FA33ABC825CE46512D3B5FB789C079F5BCFB0518D9457562AAAC5D402B4475374C6D26475BFA242DE78050C70C3EE69700227E87DC71DAD7E67B71301DA6B164A234AA9FBDC400425BB938494AC49261E23D6798CEDAFAE26DED1492696A4D7B449F80AB18BEA9931631673A74C40D7258FD0C227409CC990D5FC98A6C8F0DC0194018096C943A91605A05D6BD18CFA9DB40270CDCA62A765BC3BA55CFEAC503E7B9A24C95A236C479830A29C53268D21DD7E88CBCE3E9D5113C6D01471F8E8B77ECFC16890AC69506027396F52014B4F9B861E0A736CFF5E268E1C86162A645FF351766CDDC3A8865A162D9C4A614198D5CFAFA1A220C094310D2423095A3B22C48D42D6EE6EE5C1B53B683DD6C4D205335971C61C1AAACB48A513F8030686DFA0A0B28A9DCD2DDC7FDFCBBCB8FA1546D5FAB8EAE2455CB56A99FA8C62968FBBEF7F10DDAF33636C2DA386555156568563BB010EB1341C6EEDA6A3B79768CAA4A3234B5F5F82685F4AD1414545614A8BFD9416E894E585292F08535111C417907206023285683924B3267D699BB5AF1EE5D7BFBE9748B7BCC6A0EB16EAA5BFDB59CDD5DCDB199221879289F52C3C7D22F9563BDFFFEC15947853A69EAAD35516F5CBEBBCF3ED24C5F1DEA13806BF1355F3A9B3C520A8003A0DD611929BEEA2EFB53F5260B6E297D46AA9A244A7ABBB2D659FED479393596511BAF97612E523548968A40D6FC823A295931C722A23567D15C73F5A351105DC5CB819E81BBAF5BC0B6FEAE41BFCC3778A7A72A5E5AA50518369B0B1B98B879F7F9DF1932753565EAA9ED5C4A700BA239A51D1566F366C32D8A4DF0568258EFE9B9322D75C7C27303D586EE7EAADDDB46F7758DBE58364ABEB0E09D9908ED2B27F07ADFB7611693D4667573B7D698784BF023DAF9CB3969FC798C6E16856125DA80D69ECD98ED22F3B8A67769DEBC436D4E599B364BC0ABA7F30451A8AE2C121432FE98C38FD6066524C983A994DDB9A884475EA2B020C29D2195651C282999399505F017921BA1C83CFFDF07E9EDF791CCBC923ACA5995F0F0BA78DA27EE810BADA3B301319AA879451377408E1503E3EBF813FAC73A0E900D515352E676E9AC4DABB48C7E238C2A587CA7978C37E5ED9B495DEBE287595E54C18DDC091437B0906FD64B23076F23456AF7D999ED656C60E1BC2E52B4FE182A5A7505E5444C6D6E84CC217BFF255EA87D7F1A96B2EA3B2B080AC3453351F494DE3D1275EE7D127D6B37D77137D7171AD73ED45FD3ED402260D71196DF7E9594AC361C68F1CCA852B66336FCE04259DD32D0DDD32C8180687DAFBF8E12F1E66DB8E367427A0DE93245D5852C438723D48B1239FAF493C68523B671C73678D243FD5C67F7DE64A0A72E7BF9708AF1AFCFDDF3B09D0FFF05A7BD755D0B92EB0C0B29D4BC1736576E180786846A0F3558E3CF4158AD307084A03487C2184AF960A5A260905A065B25099F9BB00AD92BE354379E7FA64D3A7DB44ED7CACCA69549DF579A83C4DF1D0EE4DA88481944397F47893ADDB3F3CFA7FE70EB26FF446B505E864ECE6A5FD1D3CF4FCEB4C9D3E950A694E6990B6754571B4C72C35A8A02EA037A985DD6B62A04C56CA8B4137F5F377B098B894BB50483976DE5BAA14D5E272FEAED5A9DBCD57495B4A556311EF394EF791FDB41FDC4DEBC1BD44BA7B486703C48C62864C9AC7F46953185957852E032752418B4FB348E9BC082B44B592F1680D71A513158780B10CB348FE6046A2ACC4A4DF52F486168B32ACB284154BCF209EB449A6FDD456E551566850140A93E733081A1684F248E84156EF38C42D8F6D65CFB11EA2BD5D4C2D4B73C6C45AE64C18453054CC238FBF48DDD0121A470F537B3AF197CEC8591208535B554F536B372D9D7DE8F128430A82D414FBD5CFE38122B61EE8E0D5ED87D8D9745805C34AFE61C0AF93362DE50217D01D169D329A0B97CCE68C59E3290EFB94CDAC48E452E81C3E7294A28230D545C5325C48467348E8061BF61DE73BDFBB95434D51B5FB0886FC549555D271FC2813C6D5AA0A78E3EB3B104E50F7FBC92452AAA13E6FFA103EFC81F369185643C074F05B1A294DE74877929FFEF651366E3DAC1435AEC45E9AB492D22DE79BE784A86589FA328C5C388579331BC88B1DE5FB9FBA92704E5E9FB3EC7DB353FE6405FD1EAAA0BD982601841C400BB84A4C5C5872DF9D0C5807387CCFBF92DFBB95902511972E400B204BC56D645D80167A433868E50FAD4E3CE1B3655845E0D624E504B00A47E09F742505B3AE06BD143419FB1693254F2EE4910A2EB736484EF40EC0EE44C4F4CA706F34567C9F5FDCDBCEBDCF6D60F69C53282B2EC430644B6AD0DE97A42D6A91D1430AA04F80DE77D6F7737703DE0BFA7B6F2507D0EE40D01BEE290A1BCF4FC32556BC06AB2D1A741B27932419EFA4B3E50087B7BD466BD31ECC7882A44C6F960FA77AD818264F9B455D75397646647102C602D2E229214E6E12FEEA4AE984D21080CEC8308A8C8B4B911E8F819551B983562246A16DB2EC8C39CC1CDF407E300F9F8CC8FB2C35C5EF234F59CBFA7D59F56F2760882B3FFB8F46D8D8D4CEDA751B195DAAB172E12C7C7686B6CE345D7D720E9944221D2AA1243F3F9F8C9565C498A904F387F0E4BACD3CF6EC5AC24E92E92387B0646A03E545214170B2FE42BA6259366EDFCFA1960E62BDDDCA052F100E50515AC8F891F55CB46C0E7515850A4875511C19EE14AD6ABA59A24F92F06FD73637A169BCB4FD08BFB9F379B66FDB8F133331B42465A5797CF05F3EC8FA97D63075D228CACA4AB8F39EFBA819D1C8DE832D1CD87F54A5701784B2CC9C3C92CB2F5ACE9486A104327192AA9518E4916777F2D35FDD8A4F979DA386E1F36388BDAD251ED4AE8DAD2CC6315F86F1CBE63073C2108A12C7F8EE759713CA099E3C35526E80F00457819300FD5E02E81C308A9E59DE971B4E29148798A4BB55E27132DB6EA275CDCD546A11F46C5C81B16A05AAB05897AA90EFB9369B9256EC65FD49DAB78A8D4FBB61AB817292E5A75138EB6AF2879F0646B1AAB4DD7173975F956A5A00DAF5F7C81D6BEF1FEF14A80757D01EC5B1EE4037B73EBE9629D3A753573714BF26CD32E84E981CE9CD907464F118B0ED7451F69F481AF4169B9CDD67FFD93208DCDF0AE7070722BC796C564ED5E2FDE94D370AC888CC2B2B86F9E928D1A34DB4ECD942D7E17D7477F512370DD2814A0AAA47336EFC68268E1FA9405046B5E5D064D31934DB56923C45693836C98C98EF8B7EDA5176A264C401CEB511AD2ACA67E1B4094C19398CB0583167B314E4E5910AF9C9F8FD6006D4B911CA33C80B0BE82508D83A01DD4F141FDD927212D0292D2E24914ED399C872D7435B4998699A0E35515359462CD243C330E1A5AB78E2E59D1CED8AD2934811CA46692C0F70C5C2298C1852AA8689D430ACE123AD3CBDFC4A9F6D047C684183FCA041796188CAE230C1408096B88F275F58C3BE7DDB587CEA0C16CC184749385FA5649BF8E9E8B3B8FBC957B9EFA90D1CEE4C6125FA983F732CE79DB3904C3A4243C3040E371FA5A7E3B8CA65D47D3663C64D2212CFD0D5D64330E0E7A1275E61DF9EED0C29F373F1D2392C3B6DA272DF13DAAC3D1AE0F0B11E74DDC0CAEAB4B5F771EB6D0FD2D39B563604928F298542DC309973D1994CA8CF674C7E8A4FBE6F29C1BF0168D75746EAEF01AAE36493F02D11FA5D4771F4D776B9C10A57B62032BBBC90E79761F780B98383B77F93F2F876027694AC17C5E76EB1A5B1E8E615E6A41839AA4301B8C235D1D442863CFA7CF584C6ADA062CE353879A3D07429B1A47C7123A75C758837BAA27059FE973B33DDE77ADB37D51A175EDC2DCC656BBCB925C60D773FC9887193983CA991806693312DE2598D83DD492557736D51079EF0042AA3BF9A7DB357E3F2C46FF7D69FA892F3F51844759C706E79EA16B54B515ED4367E5D232D5392423325FAE86B3B4467F3768E1FD8474BD341B2FE52924629D5A3473363DE1C8AF30238665A49EAA4692836AA99B418EDBB66496931CBF7941D3816995814D249F44C8A698D0DAC387D06F986F0B1210ACB2B698FC6696A3BCEA13671DCEB52664A62B13561DC08664C1CC1A4115590723FC780213B2B07DBA791F169FCFEA12DFCE9916DC4120952991445C52544BA3A185A14460B97B3E77852D1647636413971E68DAD62E59C911484C33477A58844BA1839BC8621794182B2EBF105F0E7E793F507282A08216E80BE4010CB08F1FB0737F097479FC34C4528F3F7F2A56BCEE6DCB39611F4E7ABB4F40D3B9BF9E67FDDCBD1F6043EF9F893C799D850C8D7BEFE254C1B6EBF6B0D9BB61CA4AF3782EE6408871C6A6BF3F9EEBF7D91F2908FD7361CE27B37DC466B670F5A36495DB1C91F7FF1350CC352693326416CDDAF06C26C0AB028E65737DCCD5F9F5DAFCCFB2DDB51B2BF84CFE4CCCBCE664C95C6E9230A5875E66C022A62C73B135455639315E9A5E2AE4F4E12FEC3EBEDDD06D039731FB78E1ED8CE0B7F9717928C3BC1C604386D245FBD89C4EB372935877825AB0C4BB1B4F44E8C5C432D171AAB7E59A930DCB41619959609AC845688563195A2799FC43F6C31E8794206BA882C5560C06D1AAAE1558571AE7CCFFDCE3B04E813E8054701F4FE1E8B1FFFF9418AEB46336FEE54826A043A8B903807BA527426855377ED43DFD1ED1DB8D9B9A3E3DE02A50278DDF058A56871CB79AFAA973F72E3BD02D2728C25785476206AAF8E26DBEAEEA37437EF61F74B6B88F4A5C81022535CCEB071139934B691B0DF8FA6E47332C221FADE8C4A3191B25ABC375232C22DC72493C49F3531CC344E2CCAE9332673D6E93355EEA02F58CEFAAD5BD9D1B497E663AD6ACB7ED5A597D2D4DCCC9D0F3EC8BC39B349F77631A2AE828F5F7D294165C865A99415A9700F7445B9E22BBF637B5FA51AC397A829CBF12BBDBD9EEA5352353350A4CEC3A096A6CA97E6DCB9E35930A946E9F2FF78EFE3ECDBB38B1143CAF9D465E72B7E3A1B2CA0CF3688581A663C467D7931E5436B48EB7E7E7FFF46EE7DFC058C6C8A52A3836F7D6A258BCE3815B400712DC48BAFEFE0F35FBF5735EDCA43262B16CF64DA84A18C9A3085E75E7A9D1FFDFA3E8C4095B231D0AC34012D856DB6307FCE68BE7CEDC7D53179F8A55DACDDB0837DBB76E3375BB9F3F7DF26E417CD4B064B0D83192A0DDDD28A698FF8B8FD9EBFF2F4731BC90B0425BA9BA4AE93F25B2CBB783163CB1D964F19CAC25326286FF0012F758F5254678214392701FA1F5EA7EF4680CEC9745C55860B06019F4138E82538483828499CE3CFD2FDC067C933DB7074A1354C25DE3FC17F4255D332FA2D278F1A045795825CFCB2A5731C43C502247C15F8275C4EF1CCAB30C223400B7A55B88323DC602EEFAF1FA0DD6DDB9BEA3EFFE1A732700755906B8EA2325A531ABFBAEB290E441C56AE5C4CD8B6C4939D94A3D3DC9BA1A5CF549E0B27D83BBEE1B9DED81C3CE199DE2640E7EAED9CF9522EF1D07D985C6370B009931227BA5A721904143AC290741CD9B3B8C936562689D97D9CA6D75EA6FD5013C958941E3B88AFA48AE1C31A18397C38F94191BEA531B3E24467AABF8B524334CF12F125BCB43C4BAAB793906D32B4B8880573E730A46E28B61EA2B52BCDD34FDECFCA734EA728AF503527A74F9F423295A0F94833132636B271C31E6EB9F34E2EBDE232664C18457571908A50480DA924D0F8D5E33BF9C6EDAF1132B28AE736B57C742388664A3BD76D90CA3965D826412B454DA19F99A3ABC824BB38D67A80B021ACB7CEF279D319515B453258C1D31B76B266CB5E92DD1DCC1859C7B59FFC30966EF2E05F5FE7AF4FAF51DCF7F861857CF9DA8B686818AA766E71238F879FDDC637BF772F61BF4E6528C6B7BEF219EA6A6B78694B33BFB9F57E3A6229B28E9F6036A824874636834F8BE1985DAC5C3C8B0F5C710109C2FCE14F4FF1D2DA8DE8E9A3FCF6C79F65584DB1440FAB54F8B4E9A337A22BDEFD967B9F60F3AE26B27A10C336D410554CB7281992CF5967CD665A6D888B4E9F407D6D850AF571D37B646B95BB5EBD85FAA49BDD3F4682772340CBD0895BB9B92A0CF1E408F97C8403C223BAE0A0720763AF72FCE6F7536CB77A60995521962EB0A8B20DCD91955CC0DB0508F97E2E67CFED040A57ED90D60B38EE9F48CDE24F51D270266845AE91BEEDA851DF7E9999375CE21AECBB8AED77C01C789E056E0A94783C48B32DE2E8DCFDFC366E7D7A0BE75FB8925115210C5DB4D03A87FA2C0E7525955638374C73C2A7DFAFDA780B1AE31F15DD6FC97EE4267672D5B1BB58B9D22BD7E7E4445D55CEA743D82137B1DB4D6291F76AABE3E57332D8B11EE2EDC7387E682F070FB772A4A5033D98CFB87113A9AF1F4EC0D03053096C9530ED8E7167D49734892D458538F128F515C52C9B7F3A5555D5EC38D2CEB69D7B9935650AD5253E6A2B82F8FD0538A2CEF11B6A043AAC675533CCEF17C99A8FA696767E2506FC93C7F2910B965059948FF008AD3ACCB9E6CFF4F675ABCC47D329C091455B93D807652642C88A531474282E2AA1A3F5183E3342D08E70CBAFAF67ECC8612AFFF0C13B9FA4ACB898C33D295AE3695AA226BB77EE27D2DECBE2B3E6E2374C7ABB7BA9ADAA64FAC4718CAC29A7A13A5F71F7B6A1D36987B9E99E6DDC7CD7C314E7692C9C52C3FB2EBC9058DCE60BFFFE4B224E1ED9804E36EB10C8FA096886DA75189A341953F833C738EFEC799CB1F02C9E796E2B9B37351339BE937FB9642EABCE5B4232D6AD0CAD8EB624B8E94F7F65D3CEA3644305A41DE9A186B0D36E6F2711CA306DE6184E9B3E923327D7B26CF668957321CBB41A8C51AA516FB19686CFE0F3ED6493F0AD81FADD08D0EE36DAE590C5D14E2AE990CFA0C02F55ADDB7C1006C2486FA7EBEE8F11E8DB89E148FA8A979BA712543C0E5BC0D991F11459DD4D0FF8C564C915FDE79ECBD442F4EA75949F713505632F84E05055596B429DB82D0F57F4EBC5805BDEEE4DF1D96F97DAF53E144F0AADF85A01E8946EF0FCAE0EFEE3CF4F3065EA54CE396D124E3685AD1B1C8DD91CEC4C90710CF56F858F4AE636F8F9FFDE0B71536A06DFBCB0ED13C896379E49390076178501F0750F88D0496F04684F2DE381B85B7DCB2AE48915D53FA57968423A46A6B793D6DD3BD8B3752BDD890C2555B5D48F1A4D5559999A4CB4D20905D0D21C14BF0D01694D74D3C938A16C8673E69FC684310D1CEFE9E3DE175E5389D9D75EB884DAAA62159996F695D21E73686EEF54CA889AA0C6A431751485754C2DC8918E5E7E77EF63643209AE5B712AA74F19AF9A62BD3EF8C11D9B58B76D1B695F909E88437B4F8A84A750F165924CA90972EE6913A81A56CFB32FAC27DADBC9B8DA22FE3FF6DE3B4AAFF33AEFFD9DFAB5E91518F4DE0136809D1409768B2A9428CB56B3E4E52CDDEBB8A438891D47B937D7292E711C3B766CD96A962C52A6444AA24491144991040990041B00A2770CCA00D3CBD74FB96BEFF79C99010836E52FC9336B8104E6FBE69B53DEB3DFBD9FFDECE7F9FCC76EA5BDAD55F1F2FDBB8F303830C2A9BEB3AC5CBF8C9E254BD5B5E5AB0FBDC6BE3DAFB06C5E3BBFFDABF770F9CA7934663238418C253A225239383E7D4186FF7DFF6BFCC3F77E444B1EEED8B8888F7DE803ECDE7D96FFFABFBE41C96B52DCDCB66DACAA98065BC4B6D87C054AE5CBD47AB9F68AA56A6575E66C91FBBFB58543BB9EE543B7ACE2B39FBA874A7184D0CDD17BBACA57FE7E0BAFEF3F4DCDF1D50756C6EA7DE1484555AC0E8B5B365FCE954BBBB8FBAA55ACEC6924768DE8ACA42F4692765A7B2691E730B9D24C93F02D23F4CF5E80369969CA1830013A5065B7829F51AEA60469690A3AC1498A2FFC19A3BB1EA239EAC70EA5F495DDDB8405A1E7290CA12E2B46DF4EDA71C6F5DB4D106E095CD20F74A95A4D38F3AEA2F1BAFF0BBB6D03B1DDAC9082E12748363082531B00002000494441549E78675966AC5CFE29CE1BE66B5AD7FA6277E3821B311558051717BF148BAAE57270B8C67FF8BB1F50A987FCF34FDD43502F29063852B375A860B01252777DD5139187431A9DF2502AB09066F7933E8D46FED19CF7F9DE8DA64E9F3A74730653A08679C53C58E968B7F94ECADA98AE8E77FE07A570900C2D983CDBECABD24BF2A4C987C1DC4543421A7CE5E30739F0CA8B9C38D3479829D0DCB388853D3D34DB116175823814B823543E71B516AA30935F1D67DD82D9DC72D515F80D2DEC39768A675FDFC3DC8E263EB07115859676AA9946F6F75578E2E57DEC3C7A9C288868B71DDE7FFD3A7EE1BA55B4153C1DA73F59AC72F0F03196B7E6D8B466896E3A65CBA66F22E6ECF030E5D8A277A4C2F79FD9CB93AF9C24AA55688C2BFCBBCFDCCE476E58A61A30670726749271765B236D7E84EDC8FDB15463B95E0B2996CBE41BF2F8850CC3B6CD17FEFA251EFDC1F7B964E522FECBEF7E96F9AD1651197CD167118357EA548918A499BFFAE6AB7CEB912771E332CD411F7FF49F7F9F53A7ABFC3FFFE32B54FD3623102699AC70C46D8B9A65E3591E4EBD4EA17E9CEB372EE1FA9B36F3E0C34FB3FFF0286EE534F7DEBA824FFDD207A8944609629FBEC190AFFDE3333CFFDA616A4E413729D145716C8FAA5DA573652B776EBE94EB167472C765CB69CFB93292A87569CA919F5479BC605DCD04E8B74EA02FDE4E4A76BBE43AEA9C442DA45A4D89096FF379EFE1256B68ACF65E73CBC958A74155A6019300ED895852C637CA590A4B08A43C4138B095D1AD5F84DE9F908BCBFA7049096AC6A725DB342142ACAE84B6645B55039DC4125A9360AED7C360A715B79BEABC5B9875E527B03B2E25B60B096D2852DA97AAE24970D4006D444C27BFDE4E24635A80D62452036B4A9993211B6944390CC5F0ED177BF9D237EEE7DFFFCBDFC073C58D5C1C476C15D7393430C6B0249F4A3F74951D201AC8E2B42D1E7A12A325784FE9364B969B8AF65ED860BC30D85E1874D534CA98EFBE871B2F6F95CB2E7F541236310116A35F2FAAE9F7AACA46114A644876BC9FC1A3FB3872F000474E0F10B4CC61E99CD92C2CF804F531A34C270E29625F25A553699486608CCFDD7317B39A724C786DBCBAFF18834367B9F6B2752C6C1439D966BEF3C23E5E3D32C091C132E36A4A6BE3070E0B0B2197CC0AF9F82D9770DDBA0594DD1CDB5EDAC1C4403F77DC7C15AD4D0DA64F91DC33A9967A4BF0B51FEDE66B0FBFAA06B9F9DA10BFF1D1EBF9ECDD1BB5CA92B7CA008AD0E9F4FC059C95BD370CB1F54627D58EEB31107BFCED0FF6F0A5BFFD2A1D2D4DAC5DD5434F7B8E79EDDD2CE96A67E3EA85F899804A5466D49AC3038FBFC1FFFCCAC364DC9855B35C3EF7C97B98356B167FF1F78FF093970EE07A397D266C31A8705C4A91A8CAD8F8D5120B9B8B7CFEB31FA07BF132BEF7D81B3CF993D761EC10BFF3D99BB8E6CAB5D4AB45758B2FD51C0E9D1EE5F448CC8BBB8EB37BF7614A6531BBB0287417B8F2F6F5AC9CDBC0DDEB16B271E11C7C394DCFD63EA0D1B7313D41BD64172E96990CFAAD9F9E9FB50C3AB5CC919BEC86AE19E1B6EAF8BE4D2EE31B6D671967B5641E5046ACCE5239F820235BFF924CAD8F4C54575B2B51AD0B1C195031AB47981C3A866A49FE26EC4ED1DD9010215C693376ADAC69B78162D4893DFF66BAEFFC1D626F0E1192B9273E875AC7990864CC7EA6497FBE3DC2705ED26A72D17456DA302524E312F9A763E598FFF4DFBFCAF537DCC6BC4573A80B0E1E1B2DE893C58823FD139422997634830532BC239EE5260C18332A5501D44335E3EE69363C35C09EAE99748598833F1F5336B9F0DB31AD2F1C339FFEA9C62232A93F1472929C5F60266177C84627E53164AAC3D487FBE83B72889776ECA398EB66617B2B2B5AB2946BA39A4BCA1878AD52272ED7B1C6FAD9B4B48B0FDD72036E546724338B2DAFEC251E3FC71DEFBB8E06CF657F39CB17FEE1C70CD52C828C50C7E4381C1DF5CF95CFD1563BC947AF58C0EFFDCA07A9DA2E83136576ECDACDA56B97B0746E8F8931168C4470E85CC00FB6ECE7074F6D674C8C5FC3228BDB3CFEC527EEE09205CDBADB0A355346B16D2FAB23DE325C23F87B6B531385AC8F1D56553B44B8D165BB407F35E48FFFFB9759B0780507CF0DB275FB0E7C7C96B4FBFCDE3FFB202B167712C555C6EC1E1E7F693FFFE1CFBE8FE73974B9E208B3825FF9C43D9C1828F3C7FFFB7B1C393980086D485355138D081A182353E9E373F7DECEBDF7BE9FEF6E3DC07D0F6E65A86F944CF1307FFD07BF4653A3DC03B9322E4120CF8A47396C64A098E5B1A777F0F08F9FC7CA5BACBA6C19D7DDBC8E567B820F6F5ACE8A599DFA3CE8D2731278232D9B2EF60CCC04E89F9F002DF083881E192F4223C62FB655223493936915C12EB571E818BEB3E8088FBEC4D8CB5FA47C6C0B0DC13099D004D310334528016A3257D4C02A99A4341C258C099D4BA58735E80A64E05A5906DD25345EFB7FD3BAE1C3C474AAB3F1D4A08AA4F7D342D19B32868BDC8FA46A49A10353F827D389A9BBB5E85B5B50041E786A2FCFECECE5831FB9CD1CBBBA8FC368E4F3C6B121866A12EA1C6CD19F8CABB88900AF08EA981A22E54B27CDD604E6982C51260F716A0B4F83924981CCF7CDC0C95BDB65BD356B241D0C4AFB09E97D08353BB544994F86376C1BA73E415C1C66A4F728DB5E7A9D61AB9185AD4DAC6AC933511FA312D7949F1357EBB8E345DAAD2A1FB87E034BE7772BBC33E076736AA842971BD0D3D182EBD93C73B2C21F3DF22A457C42E1B50B8E25138AD8348463E4C77AB96B49137FF62F3E4D20C608BEC796175E61F1DC59AC5D344F7D042B56C4379E3CC0571EDECAD9C11A19C7E683B76C62C3E22E3AFDBAFEDFAD8D18BA261E35B7C091DE331C3A76428D095CCF53FBAFEEB6162E59319FD6425669A09A1C88BB8A8CA97B1E2F9D19E57F7CF91976EF3A4C873DCAEF7DE67DDC7AFDA5F856C870D4C233BB8EF23B7FF25D350BCED607F9F54F7F980FDD7E19D5D066DBAB27F8CF7FFA654A32209975557AD513A3E5CA097EED9737F3C97B3F4CAE39CB9FDFBF8DBFFEBB1F910F035AE3337CE94F7E0B2F63A90942183938966B0C12EC26427F36DFFAC1737CE3BB8FD1BDA08DBB3FBC99395D197A0A11775CB68CD67C065F866E129FCF34839EB6E4669A84EFB6E2FC59CBA04D8036D31B6E9866BDA1EA186433F2A019BA9C6489CAA1A8C920C43906773FC8F8B6BFA3BD7E984C5CD56C398E2493942942611208232456CEA744572F906C5C5EAB118BBA9750F1C23AAE586DC95044761E679C15ACF8F41F12FB2B8934A027043EC111DC0B1B74C91D793BB6441AF792809E5486EAEFA726AA9643DDB2149F3D300E1FFE9DBFE2B39FFC45D6CE6F5178458D742D9B9D470738557128E211382E8E60B962EFA48335924BCBB5496420F5980D269F54DFD360AFE9C1D994F4531C6BF39A64E06F17A0DF6A1DA69A3929D4211B92DC5783535AB8B64BB526C31A023D05D8B512E5BEE3BCB0F50586CA214B3ADA58D490A11855294AB35004B14A25F213135CB77629376C58822FE3D1BEA39ACDA335979E7C4ECD5E23ABCCF37D75FEECD1D719AA6508EC3C9665065F6C274FBE3A4661EC241F5DDBC91FFCDA3D947C97370E1DE2E5ED2FF3A13B6E64517727353FC36814F1FB5FDACE3F3EF90A0507AE5C3997DFFEF88D2CEE68C4AD8E29B7DBB12D2A91F0257C9E7D750F6706C7B9FCCA4DE4F30D542A81AEA71387F63276E628D76F5CCFBCEE36BD1FA6E96C13393E677359FEE63B2FF29D079EA4B136C047AE5AC0AF7FF61791E55EF61AD9716C94FFFAB78FB0BF7740250AFED9273E4CE5DC0916CCE9E1CA8D6B787ACB4E9E7FE1054E9C3AA1E252856C8E4D972FE577FED567E93D5B66EF913EDED87F8E87BEFD087E6D8465B32CFEC3BFFE846A9E587E8E52BD815ACD25AC0454438F1239FEF6FEEFB0EBC851DADA6D7EF3D73F4DA13ECAFA855D6C5C398F5C467A1F815603BA46A663CEE9A29EFE1CCC64D03F4F19B4B8589B3BEE89D4610204FA9E455627092598099EA8409F091EA1E8389C6664EBFF24DE791FD95886770533480AFF840B275A1D81F8A6C9C86FDD2CAEC0916110ADD5F0052B8CEA124AA83B8D949D5964567E90A6AB3E0BF9F926482705FF340EFED4C59F5C9417ADF3CEC7E6D220ADD5821179126C364CF0E301E0737FFA23F6EE3FC8BDEFBF85ABD62FC515A8C3B229E172BC08BB4FF653B58D4EB05C13E11B1B9D66D3B094C09F203CC948F8D453631A87E921258DC0A4AC9F6A049AE6A80A35BFC72FBD6DB6919E944A253513354E2CD3704ADB56C6817080193DC7ABDB5FE2EC4891B98D05BA9D887228F0469DB85A251F45DCB46135972F9D4F3E2E917165C382897C3B2FBE7188D3078E70F76D37D1D3956724D7C90FF69CE681275E67342A1089008B5C8F20225F3AC7B50B5BF8B79FFC004B9A1D2AF90CE3B51AC5B37D2C9CD54257739EC1D0E544A5CEE7FFE0515EEF1DA360D7D8B4A49D5FBE7629972D6CA3CDAD51AC476AE47A6A709CDDC7FA685BBC9EC79E7A8E97B76F57F17BF1313C75E60CF36677F1B97B6EA5C50D98D3D148474B83B28A222BC3C044C05F7F770B8F3FFF1A9D4D79EEBDF56A3E74ED1AF26E8863854A772B5B190E0DD97CF98167D9FADA1E1CD9ACCB252EDFB0948FDCBD99037B7673C7EDD792C9BA64B24221F479FCC7DB597FE90ABEFFF86B7CF31F1F56138B063B60F3A615DC73D755E4BCA2D2EB2A718117DF18E0AFBE783F9E02653695D8A29673711BB37CECC337B27E6917572EEA66FDA22E7C6567241B6D0A7E4DAF0E67208EF7F6A4FCEC65D012A0CD13EC8552621B184004FBCDA877A2D826C14C839234EF62AC7098A117FE9C70E7D7C885FDB83ACC226F17B68629710DAF5A1A6A316E60864CA4032F19B504119162745C719F88A88B929E9DA3585846F3A5F7925B7D27716E01911ACCAA6F851ED779F8EC7B0DD006BB309D3D6D4A197B2FF9F688058FEC19E4BFFCF5B7C8B774F18BB75FCBF2D9CD5862A0EA65295A1E47874A1CED2F325E8F885D4FA7290D9163EA29491918FAAB122384A9703CFD699A9A0FD400AFD76E6AAEF32D33E5F3B97A936FD34F9E2600289E919269A5B8B914FA6A46AB1BA985285D5B137DBCFAF22B9C1E2CD19DF3E8C9C6542B1306BBADD798DFD1C60D976FA0AB204E23559A5C5B47B427B20DBC71EC145135567DE676BF4ECDCF32916DE1C937FA78E2F5639C1C1ED381A07C7D826B9777F0993B2F6371CF1C85048E0D57D8B97B2F97CE6BE08A558B34084D7879B61DAAF0DB7FFC00A76A395C27265739CBA5AD657EF3DE5B58DB2DFCE3066A769EC162959363759EDC7592C79E78960FDE7E336DADCDCABED9BE733FAFBFF61A97CF6BE0CA55F358BD641E6B572C26EBC68CC53EA7C602FEE4AFBE4971BCCC67EFB989F76D5C430E19C611F92C51C1AB2ABE3D4603FBCE54F8FBEFBFC02B3B0F532C06B4B57A34E402DC609C5FFDF44738B4FF38995C0B1BAF5EC77FF96F5FC4CF75508F1C4EF51EA7D52973DDFA857C78F3E574B76794BD117A2D14E3161E7EFE180F3CFCAC8A884953BE1A5708B23157DFB4913BAF5DCD82269B1B572FA13D6F7A42625E21F75708A81732812EDA4D9EC9A07FBE3268330422BACE52A69BC93F9938950C5ADD51C2345B34AD2F6954397199F13D0F30F6D2976898D84B361A25B08426E413076E92594A061A68D62D8C0E0D65AAAF98343A1C331823537D2AB169D914A326A2D6D5345FF529328B6E2676BB34F3310DC6845A9766108980FD74EACCD40679311A5E320492DA68A56F96869805FD41C49F3FF822DF79E635AEBFEA52EEBAE94A7C61418856B2ED53751D8EF697D8D33B405594EE9C8C561512A5D34A53E122AD0CD2DF9FF8204A1626E1517E67126453E687B9FA69A69BA2F76F5E63E7C1EAD35E9ECCCDF5D71AD9564FAFB9FCDBB8C2483523908DE1E0393A91E79607D8B37307A7CF8DD3628774FB01954A59191CE22ED2DAD2CAECEE0E9A9C8856ABC62D1B5651082AD433197A87C7D873E494D21E57CCEB60D9D225D8BE4FC92A70F0CC083B0E4AF95FA7B31073EB55AB59DAE9538EB3847E86871E7B991F3FFE08BFF5F15BB8F3862B55F1B0ECFAEC3955E48FBEFE635E3E3A42B1125388C659961BE05F7EFA83ACEE6E52F9D79A95E15C090E0F56F9BBEF3DC3E878919BAFB99C03FBF6A9E8D20DB77F88ADCF6F65F4D0CB6CBE6205EB17F770D5252BC9BA01552FCF50CDE65BDF790A11C6FFD55FBE8BA682674C09EAE26E0EB96802272CAB2441D56D605F5F9DBFFEDA77D97BE49C56164154A5ADC163C19CB90CF48D287B64CEFC1EF6EE39C8C4B8407D210D7EC455EBE672EF2F5CC7EC069BB85ED25B1E50602428F0DDE78FF1D0E3DBB5698B1B520E4659BF690577DC751DF373356E5CBD8085AD8D78CA704D8C9C4536DA68934EF59D0D39FFCD0B652640FFFC04E82471D31372924112B9EDAE6F200E615D68AE27138209BFD62C8B0AD6F801C6F63F42F0DA37C9958E28BE2CA22D76E826496AAAA1A1F8C8B48C320942968C528B51AD3020D2C0ED11D044A9EB6A5AAEF92CF93957128B2CA98E8F4F7D2554FC0B2C0B2FE03F4CC3EA8C095782454E6A87A49425C3BAA85B317B07AADCFFECEBEC3E33CED2E54B58B7680ECD1957F17219649808638EF64F70AE64A98B76DD3265AAEE3F2215A923EEC634577B7D89A894685BA844B652FECCDF27AB133DADF48DE980CA7BABDCCCBD31EE2BBAD9A619B46A6D9BD752268B64F64E1490AD0D7174DF5ECE9CEAA721AAD0625518ABD629C62E135681BA9727F27C724189D6608CDFBC7B334B33A6B750C6E6C0C028BB0F1E229BF559BF7C29B35A9AE86E6FD4E65E35741516CB66A1493270C762DFE961761F3FC9F844404326E6962B96B0B0AB0B3B96C9439BD08B79EDF8302FEC39C6DEA3E3CA2059DD51E1EA754B6816757C616EE07272C2E2E0609D2F7FF729F1C165D5A239BCFEFA6BD8AECFC73FF339B66E7D89DE1DCF71E7D56BB864413B57AE5F46C18BA84953D8CE72A4B7C8E1DE012A71557B249550A628ABD48A159674F9EAAA32AB45A60BA162E77965CF09F69D1866B81431305EE1D8F1A38C8D4E10D524D18870DD98B6960616CD9D455BCEA6250BCB9776B1A0A715576605641D84D233752947395E3D1972DF8FB6D27B7688D0AEB3E9EA356CBA7239B33B1CD6763470F5F2F96495C72E7D12D3DC1698F03CEC59D7D8C586A7660655DEF6C9F9598338CCC9A4A5F594C19374E6552C6972F0624A9FD93CEC015654845A2FD5E7FF8689BD0F938B07B0027137F6948B2AE43A09C08AD326015E54ED4CE96FB8BEA9C8BF69AD196FC328F628DADD788B6EA475D367705AD682DD649801C231368204D316A864A6491331BD3BE7A309934E2466B349329129E245027D541563EE2D07FCF9F75FE0F1ED87D87CDD555CB97E290D9E452442F7CAFCF019AAC089FE0A27068A542C97D0158D11C1EA4315FB51FA5D5A9AE8608E18D69AD521015A925913A3A70E54DD651218E262D0E2DB2F3CAD6D0CF6AD1C5D732F534EB452D3B44A31025719E13614FB193FD7C7F16327606294C6B8CA6025608C2CA55C07B56C33A19B25139669A80E73CBBC66EEBD7419793756682AC8E419A804EC3B7D8E17B6BDC4829EB97CFC176EA6D1A9ABF07FB6A181B22DA4FF1A3DB3DAF8E1A3CF72FC442FB7DD7815EB56CCA7909114DFC171C59BD2125D7F6DD80A0EBC63CF5946FBCB2CEC8855EBC289CD24AA04E8FEBACFA1C180FB9F7C8513A7CE70E7CDD7A98940B15C5178EAF9E7B6922D9EE47DEB1771C9A22E2E59B5481DC2C58BD1CB3452B65BD8B2F3305FFADE939C9BA8AB59AC27D563B5445766847B6EDEC02FDE7E03765D6CCF5C6D4A064E8E722832A9558E9FE963746C82D2D884928B0A199FD6963CF3E77492B7C017736526D42A2CB6B232A54EBD1290CFC89C80CB996A81E7769DE0E127B6D0D456E0539F783F4D7E91E53D79362D5B448BEF29A427CF990C8809C0A71568BA28B4F92BBD1D13A0A5369B71F57E9709CDCF5A8036AE1CC9515BF574B25B39A042B333D042DA614B32BD44F3D9A466E330F61AA77FF0C7340FBF88178C63CBE8AADA204B804E14E1645045C71525406BBE6EC64E1477354D31C32556615F15A3A9DA5D788BEFA4E9CA5FC2C92F0227AFC69D3AC69C967769D9974A30A6813BBD5F6FBA21A953F8B4EA508F47FE53258AA53670B8FFC543FCD1379EC2CDE6F9B5CF7D88F6C66695ACCC8A568718887A59C6438B5DC78654F7A1EAB8843AFC627489C5E859BCE554E254B62A0DCA8EA14AC9004EC2819E8E61EB7EA10FDC4FF1953692922AC864D449E6AC015B082762142BE2FB35B2718D5C6594FAC4087BF7EDA53A3A4A368C18ACDB4C788D5473EDD4334D0AED384191D6689CB9C553DCBB61219BD62E570717C775293B3986DD069EDCF202A74F9FE3DA4B57E3872582E2289BAEBB9603E70678E5B51DCCEEEA242A4D70EBF557B2A4A70DDB0AA9B83E4ED6E3E89980A79E7996AB366D605677878AFCBFF8E22175E25934A719BB5AC40FEA46AD0F8BB3C598DE8998DD67AB3CFAE4B3B4371558B27821E54A95DDFB8F52298E73FDEAD9AC9BDBC28A396D2C9A3BDB0CAFD8592A81C750DCC013AF1DE2EB8F6E653CF23468BAF5807C58A3A176941BD775F16F7EF59754B94FE445E51ED642C1F00D42548DCC8A950D5B4C0E4463CC76C5115D14FF6C63C2EB8454ED3C23B51CBB761DA4F7D809562F9FC3FC05B3A9B88D6C797937FB0EF7B269D306962D6CD1516E312168CE66123551C99E6526416B52A33B963245270D954DD5954EEF4EAE9A1988E3AD1FA09FCD006D52C9D812EEAFC930354067BD0B76665921C6F9DBC87E5AC441152B2E11165F66E86BBF428B354CA06C8E40C572D24C2ED0409594F849C0571DE3484A37471B4AF2FB45DB567E83EB78D4A30C65A78B626E396D2BEEA46DE3DD6089C0BF6FB05F8510CCA4E179B4E3E9B7473185692C06D3BD4BE00503B5887A987C984CA689CD92644DC3D580BD0315FEFEF1D779E98D835C7EE9E5DC79E37A1A0871C3B26E402532942D8FB205E7C62C4E0F15393E384ADDCD26929012148CA6B44C271ACB2DC9040D8E9FE4D309EB621A9A78D145F44E41DBE0EBA6144E5DC01309D9490D14C310C951A5109659D2D1CCD953C7D8B6FD058A62925B7318B30B04F976EA6E9ED0C928F49409C6698FC7B86D410377AFEAA6392B10491DC771955F5CB67C05C204461246830C8C44E5127E36A33A13F97C56E978D938A42D674C52AB991C7B4B19EEFFF18B3CFFFA510DBCA26FA1AC059137AD0A793122E7862CF0CBFC9B8F6CC617EA5E546722CEB0B77780932375662D58CA91E327E8EB3BABFAD5EBD6AC62C1AC0E464F1E6056A3CB8AB99D789EA7D202434E07FFF0D88B3CBBF30413E419AF06C4225FE8C4B8B5906C50638EDDC7C76FDDC01DD75FA66606A1536078AC482E97A32913105746A8D54C55580B8D3FA15867C96625EE3422DD2A8DD9E1D0E3C9ED87786CEB61EAE24758AED0D868518B4699DDD3CDE69B6EA0ABB591A66CC4D5EBE7D299CFD3EA27309E168892D868DB32811EA707E8C450597B3217E959CC04E89FB7006DA2586C9BA93379C0458B4307552E0C7648B75B02A297465BF38EE018A7BFF24BE4CB077165A4431A8022C328A57D6CE908AB52BEA409A9C2FE221D29A59B9127D514C1AAEA48B7E082A2C4E63AAE4EC095AC0ECE05F359F76BFF15322BC06E98DC2404F15079CD8B98B64ECEC1BEC958D3089DEBEF95FC3D25518863B53C68327423E6020E1C2CC36FFCBF5FE6E84095F52B16F1B1BB6EA4332792EB35222F4F39F2A9850E6E4EB0CC98570F8F7062B4C2784DCA5C9369598EA70FAD6C2AC2FC90586D8A9694129710ED2633F9770AC66F7E7D6A22D198F50A5422015BC691CDDDB5353313ECB92118675E93CFDA05B3D8B5E3359E7CF659C62A3113359F6AA69DB8A153843D4D5F8088C66882FCF829BEF0CBB7B390614281717C0FC7F5955E297A7FAE86923A76A1013B9357B7491512727CE5268BA29EFCEEE67C8E9AED319C69E08F1FDBC5035B0E52B31AA9267D014714F2C57E4A0739EAC46199F9E5E3FCD5E76E21EB0408FD53608E2A1E077BCFE9A8FA9C25AB54E0DF756C864E1F63F0F4515AB3361B562DA529E711EAD45E9603A506FEE4BE27383C6251F79BD5E547EE501807F8514CA65E636D5B95DFFAE49DCCE96AC0C91638D65FE32BDFF816ED1D1DAC9F93E7F2255D3467E48C456CCB25F6F2C44E96308898181BA3C1A952AFD718753A78FAF5D33CF8D45E4A65B9362175C6B0BD0AB7DD7805776FBE06B73CC8DCB60C97AD984F932FBADC2A3693CC3C2526C7D3F289F4AEC762CE6C0CE512B82EAD809377CC04E89FA7006D68629A6B696669C673B39E3478D2B1EA69295D2A71A812A5690351B2D97384BBBECEA917BE4173FDB8283E1BB19E304EBC0E45CB2269A8D9C6F5C391C94509D2320E9EC2218243DBAE12F3951AE6D8D4C5FDD869259E7B0B4D37FC166ED33CB3926D51DB4B33E8B772D14C46645305B0245B36C1DB78210A63C1178532C5168C68875C0FC9E48BD87CE947AFF2BF1F799DD16A9DE58B7BF8FCC76FA7D989A9D5451A526435054208B14405CE6B60A00E47072B9C1A9E60AC54D132592C8C02C96C6D69DAA5A0512A529506E864047DCA8BF65D476A83E08B60956D9AAE92494B55209C660BD549F16D1B3BA832CBAE72F9A276DA0B595E7CF1659EDEF21C4315915FCDE234F7507304EF37B254715CA7291AA7B574962F7CE61E0A637D94F34DEC3BDD4FEFC9B3AC5A3887353DAD747A214DD4A83A11A21890B16C5CDBC3F67C5C378BA755451DD71361239F41A7C07FFCC12E1E7EE1389ED7425D849A62913A3574409D6A0D4543BC4EF7D02EFEF673EF23572850956948D90C1452F2192E87EC3A7C8A52A9A2EBADA3E0A88468775B23B17AFB09B466868646DC6E1E79F918FFB865AF9EAB24040239C9E8B51B85D895712EEDF1F8D58FDC4ACFEC76761E38C1B79F78950327FA182F1559E48E73CDC2167EF3331F250C03CE0539B6ED3EC681D383548B326E12F28BB75DAA92A8459AD8B677807F78EC75758971AC2A4DED19AEBE7603375EB68A462A2CEE6860D982761AB36087D2B5704D7B440AAFB4EA3BBF336EA0C024409B0D5EAAD064EDA7EF9D09D03F4F013AED3C48804E071DAC2440273CE8E9FA17E922D02C504258A2015D1B25E62C83CF7D15BBF7C7D8138771E312AE8E6C9B86992A7629F753325889D1325A2EC9AF28DE099BC30CB0C82A15BEB562D8AABBE011D42CC6338B097AAEA763FD4D381D4BC8342D044C309974C49ABEA0130C560661E417AACA85893A93AC8934B99E74EBD2C59D4C422A7DCE611887EFBE729AEF3FBD8DA16AC8ECEE59AC5C369FC6C606DA9A1A69F12D3271055784E69D3C25274BD5B31929470C0C8D3351AC50AA1A7538E17BEBF3A4E76A1A3DDAA24D0E4985E9D38C5E31568CF3EE00002000494441544F43E19B54124A655D936F690F41AE6D327529D5806934CA54A8D02165F333EED52A881506CC6BF05935AF5BDD399E7E6E1B8F3DBB8DA11A54BD46326D732847421F4CA6D6EC987C58225BECE743D76DA22BE3706CB4C8CEA327E9EF1FA6AD9061794F2B372D9FC5BA66686CC92AE127721A1829878CD5E5D664F4DECBC4E9B2B94D34B82EA58CCBFFF7F87E1E7CFE14512C729B725D04CC15B98A08B7162BBE2BBEDE6BFD21FED3FBD761E71B29D663727189BC634015D1EB26D3A0F8B37C35F9522588196EACD9ED68DD65AC22EBCBC66AEC6157EF080F3DB39313831342753178BFD8B249C516D56808475835BF93458B17F0D2CEBD1C1BA850C7C7757C5A8A2758DF0E5FF8E79FA25E0FD976749C6FFC700BC7FB27C8B8365E54E1FDD7AEE68A358BB1724DEC3C7486275FDC8D63C52C9ED7CEA64D6B59BA78168D5685851D4D2CE86A262FC72BAD51D5741676BA599A9A2C4CA7D49D57C91A5D1AF9D2C1B2C91ED24C06FD8E19CDCF1A069DAC07B333278D2B090B9904839E7C213DF314D3D500614C62B5D49234512240ED30E5DDF731F2E2D76888FBB4FB6E181CB1AABFC908B5490E0CD3C1C8CC4996274D11491F8CB79AA1F7C90620714C865F7C7D186B6418F5679159B199D91B3F8E9D5F0656C1947A9226491A95F6346DC928253C8B6EAF519936FE7D17DCC68BE2D4661C5CBA7D226A53B16D864378EDD4287FF4E54739D8374C365F60F3F557B071C53C3AF30E39026AB1AB7C5DA5BCC509075C610D5739B3220E67361DA3BB61360CC3DED06EBC69951A7537D12A111F3EE58D4B5355D82AC948B966C5E667EDBA1171371B51FABC4E6BEC26AA7B86AE25D99A70A40D0EFEE0A34FF2C8D65D94AC1C7E730756B699AA060AE90B18884339D3823987A2012EC764A01A09BACA9E8942DA47F6F3CFDFB79C6B2F5BAB6A73474A3E0FBFF0067BCF8C3251B5182FD5E808CFF1AF3F7517D7AC580805F86F4FECE75B5B8E2BE758400083D15BD861881BE877A8C5115DE5D3FCF6AD6BC9347772E4541FCDC120972DEEA6C191C01612B91933C821C7A3B8B0D0E30A0CD47D76F48EA9F29EE537D0DA39876DAFEE64BC66AB79AB6C86DA9ED6C4C474E12448CB28BC910240A5001CB258759BC6F02C4B9A03BEF0EB9F54A5BEAF3CBE93275FDA4F449ED8AA624725B24199D99D4DCC5B3C8720AAD1DDD9A5D0D8AC962C0D6E484F5B9E799D8DB43766B44D3E2910AB104F224FF74E149E8B64D5E7ADE8990CFAE7278336673295169B9EB068714893D0372FBFC58249B9B5B292350B14E2683C44B9F729867EF2A73454DE50794B1114F224168722C96F7E5FA22D97743E8C029CE1428B238BB047CC71489036C1CB0839099450715BA9342C24BBF466F2ABEEC46DBD04EC4673983A1092344E3403958D23E5475F4C272E3DB90BB756D33834BB96D11A9E88602C8A79E9C8902A9EBDB8FB28D508E6CF9BCBF285735932B7939ECE46354315FC544182C4D44082990A44E967992D4AB2363D4FAD46049A301E90C6CEC8541AA10093718C6F65D4C5C368114B5809A92B7345A000D3CC154DE3F46625717F6AF04C8291300E5477D838D74880FEFA433FE2C7AF1E262AB4E337B412D859025B02B409184697DB1CA72AE9697A3FB55E0CF3C665D6D8213EBF690ED76FBC4C45A51E3B3AC2B79EDBC9B99A8DE5E6F477B631CCE2E6888FDD7C1DB3E674F2E5E70FF193D77B55533946FA1D72EF257336D65672B7EAB1A3BA146B9A22F01B39D73FC8DCF82C775E329F0D8BBAF43D812BEE2B963ACA78A1406B316376232F1E1DE1C1978F7376BC62AA16DB343363F13894DE85E8A8A474E2747C5FCE35BD07DAA8934D56CC75659A7294AE5C8DF75F7B89E2EF4FEDEE63F7D173D8B60F7199281CA140487B5386F56B1673C5A5ABE8E96CC58FABCC6EC9B3A0334F47639E9C97E89A9F37157A9166DF3BA6836FF18699003D13A027AF802CF024C6E9631B96884AC7187FED6B54F63F84571B226B093E6B8C4875196AE637A578A74F6F22FAAF0FAA0C2EE883641A8792A9A7832E32E91845B68112B2DD443D57D179FDE7710B0B8855A7573AE1468CE94DA5DF85B72D4DA5A78916E9394C36EB4C4D21196CDA2C9710588AA06FACCAF6C3E7B8FFB1EDEC3A760E3F9BA7A7BB83DB6EB8849EB6661A73596D6819D90FC3B0086468417728393E034198BC59A2C5541335ED0AD89664ACE314A2320D4199A2D5C2B8DB9EF8CD887E891C9BA3558A5CDB644C50CF322D81D3409D9E960459391F09D46118F2A5FB1EE485FDA7701B3BB1FD82EA5EABCD973435B541959A101898283D621D7AB12385AEE2C8A36BE224BFB8AE9B5B37DFCCD989325FDDB687178E0F1048134D2A8028226B15F1C23116343793CF3772683462AC261582F4243CE2C031FC70AD3CEA1A3CEB764E35ADFDCAA8B277C4817C41748A1B96B4F2BE4B57E17859FA4B0E478E1E5771A605ED5916CCED5236CA4FF69EE53BAF9D6242B371D3DC9673976A463716A5443AA623AC8139363206B29169E8176A644818CA7BB32643A64CB35DD36C7D30F49990E30F420AB99839DD05D62C9AC3CA05DDCCEF6EA6B5E09371A0BD29C79239AD34666D9DD6F59CD4CC627A72308DC7FF4E19F43B05EE99003D13A02733EB0427D3C7571FAE1022A1DD1DA27EEC698AAF3D80377650FDDA5C897EA29226D8B590472331A595ACD194EED24A93D25A82B41121920C464A5679784C1B4C0347249C580942792A760774AF236A5F43C725B743EB52A5E2C59A85273E409AF525637DD345FE13C53DF33C4C5901985CC664B94A254C02B63CB822F42F5998CA948670FCEC107DA345062A31BB8F0CB3EDD51D5462072FD78CEBE7686F6BA1B3B395B6D606BABA5A71C51057F7A3445B3A755357B68B997794C024479B8BC6E9AC1DA3BBB89BF6A1EDEC772FE7F4FC7BA90A773716A94A73CCAE15100412E493694FF91CC5CFCD99A9F48864F2A95092EB69062D23EC4F3DFB0C63C5228E5FD0D175C95BEB8287EA670B9DC560BD72D0FA39938E2F729055858E8832F8C573CCCF0734B4B6321EC1D1B198F164A254AFA68C2A8B225B54C3B5A5FD1B5389655C46A089645235F24D634F297C81EA72D7E38C327AB4BD2C0135A8D2581BA2C30B98D5D248BEA185A162C899BE73BAFE648AAFB3BD49ADB2849F7EB26C539173903523ACA07A224790DE5E6D8A48159364CE1AA0536AA69CB7307B32D4A49742A09A1EDD8D59DA9AF2CC5E308F593DB3556DCEB76B3465E5B50C3D2D0566356769C9BB4ADD14E38BAC2B4DD3444E762A0B48AA91E91C9CB7AE58DF292E4FBE3E13A06702F4B427DF0C63A438AE49A38D9E72ED0CF5D7BECAF8AE6F13977BC958813A434829AED9B150F524486BBE6202B496F63A5167862C14E650B7106181C82362A9B1AB27C1B52A5DFE2C229F3F91ED61A2E5121A576CA673DD2DE0B44A88335D7CF90DB22924138C939B4BD22A4FA568CEC3A627B9D2698493A82A412B71EE48B05E850A1C8B3270AE1CB0EDC008AF1E3ACDEB074E73E4543F956A45F592C5BD5A047D148797E0A99975AA39A73E2A38EA1D6802ABD82DB5944F707DD3293677F5B3CEDDCF735CCBFF3AB28A73712B55274FA01C725546569E7524FCF0C99333C76DC027D3F8F43D8F58F0678159346B84EBAFB9820D2BE669C0D6C6A058389984DE084125E5BE0449D3E04DA49FF4DED4938C5374D96A1096A93B2288251C765122144959B9A706DEB142D38CABCA4094A01972FCBA89460475813684F1617A1BA1AA1C4AB62F2C0C87BAF42E821A9E1DE3C9845EBD9A003036A56AA44A76EA3E1E0B354F9A82D27F1039D9742394BDC65C77B58DA80549A35660EC848D24554852889873371095BC5AACD7705D8B96E6020B449F24EB50F0E59A9AE9568F3A3DED8DB4E73CDAF22E59C7C2B34D50D6F440EDAC8CE38B6C945350D1547036473613A0DFF546F4D3BCF167B149F8D362D0E9139C860123C41312BB3206EE405D64490F70F87B7F4061780B0DD12876553226DF3C0769AAA22EE066CC5BE9183A1E6EC2A666B35292EBC3AC73AFD4C340E951221E13C8649CEF52893D4A512361CB4AE65DFF4BD0731DB13F4FD5F0A4D9A5FE81170ACBA4A5E4C59A866F7A5ACC9DD5ECD73C712ADB6939428D92A69379B685432D23DF83C598ED7B4FB2ED8DFD1C3AD5CFD9E1716AD550F9B2521E1B1A8B49E38C5AA90458A3E7E151A1B17282D5CE613E36F72CABF3FD3447431CCB5DC18FC756F2E3BE067AEDD9D88E8727CC0CF94CCFD7EC579A767ACD92B16E6D8D5A31BE23EED301BE64CF6140C6CF1005011FB8FD26D62CE8D2CC553620A13826C9A599229D34034EE77D0CE4A3024CDAC495CC56208050EFBD402E3231E948A33110CA5C48206A85B20139191CC723B46A3AD421B43281A284AED890CF49424EA52ED4B7983819274FFAC4849A824BE5603259E9458848BFE871ABAAA06EC2E24958C355268C0C20C9FD3012B8A92BBC49060C7346362999304C7551746BD4359C346CA358AB3E1DD956790113FCA5C9EA47759A9C2A39DF239B6FA0B990A3B3D1D504448A4303E12BD86F168D40298A3D49533CBDFFA623935EEF9900FDD344DCF7F833FFA402749A6E240328EAA0218A4BF2544940D587BE9FBED7BFCDC48187C88F1EA2A93EAE9C535D94B650C00CE55E522AE3F82D11306D7619F6422A1493668232982299A6B233D40D39D4A19658865A68A1E4CFA5B0F8065AD6DE0C4DDD386E13F86D60E515EB34C3EBC99D4AB2440367244D308557A6206C99FC93075E9E2D794E0D2E9B02EF261098C0280FB80C59484090610A8B09602C84FE71284E481033F86FCA99918C5A6858E2DD68DB55DC6018AFD2476EEC00D5FD8F326B702B0DF5733A4C31E6CE6730B79ADAF2DBF156DE46352B565105FC64363C951891259BAEC3645E053182319B5D32299F906E9A7290133F04418EA67AA2931E8E467D6F6A0E286DAAE9069BEC79A9D1B8C4A0244E9B4C50664E9201CA40C59B8C80944C8B2A2345AE45B2A10435F56430D75D7C21928C5DC39AA8298AE7A5E518B9DA046F97630B4281C1E4DE987B94744027A103F19654D7EDA4F12ACA8C3AC5999C98E0F092DD1AD64D122CD57CD794104245D454C1C6F4140868C835A8CD57AB13ABB185343965D97AB236D2A5EBC81592F59F365D121BA15447665A237B7AD27C1EFAF11E63CF0CC4F12E2ED83FA900AD4E2B929F980C46C2AE665DB226356591055A026B04EAE738F5E817C91E7F8A6CD0A7C47D1DA6B05DEA711D9920D3874C1A34899F9E795A25A026C60149B34DB34E09D09AAA48A26282AE8E503B596A5146C5D1859247B693E6851B8997DF4CA675094EBE9B98BCBEAEBC6FFD7403A324CEB49A112766E6536B3EF9DBE4FD4D980D6926ACE1795A962EE766E01A237873A104BF5A8B292B3032BA16F57304C543948E6DA5EFC5EF938D47C946E3E4A371851264AA91A8401C3732E2B612CFD948C735BF8EDFB90E3B34A5F42423616AEF99EC77A64A7AD34FC864926FAA2BF42D93DFBFA0BA489B8E06FA480095291AF724762F9BAE500A4D3229938641D26FB0547F3CE90898F562482BC94E90A20C534D33C59E553AD5FCD1775EF0A05DA43EBA389DF222CFF054AD6602F4855A28E925480411CC8A8FD16C590E43E98EC9791A5E72B2134E7168DEE22A4F5B54FFA78DC1E9E7358341BF75A4FE2715A0D3E22C998C134ADB6409A9E988E08FF2880AFE1B108FEC62E2B9BFA47EF4697C19FFD06937295B6B584E92554D3207D2713A19AB15FC3999B6D3A7539E0C2D5C93469EA1840935CC96EC5A9C9D55DB43446EB254FD4EC6FCD9B42EDC48CBDA1B705A9711FB9D44564EBDFA4CDC4F44A364245D82A750BF042698D4CC4842C864966DD680C97892D453FF9D3CAD09862BA316BA89A9DB89E9A49ACD40AE4915E251281D63E2C0B3548E6F2738B393A6701051FD334A0C468EB526823E1288438BD0F519F0E690BBF65FD1B9F6C35871A3895CE9E0E785CBF34D69590AAFA46FBCE8AA4DAE6D9ADF4DE6E4D310B134853617C204CD8495926CDA6613943B234D613384945A43EAF59B8C88DA019CBAA8CA9D4F7E679AAECBBD4930DDC90A265D0FE79D731AEE1337FA0BC3E3F460981E80FE88D996A6D547E9B6910C1419FB37990A95AACE4D761913A0E5BCE51505D1DF1C902F7689CF0BCAE93FDEEA5EBC75CC79D32B33017A26404FAE5C59579381C13CB0CA39D55AB7960C3298715AC2D3D47A9FA0EFB1BF241F9D24135694272D429D9A6B4DEB9098093B33D0A28FB73EE826733142F7268B36A232267717F687F988C4BC36814E624B5A380E15A7955CCF3A987D29D959EBC8762E874CBBD2B7E250B279C35ED0869923831A4E5209240F6FFA10278A739318799A085DF8E0CB7109561A491B53CE31E58B4B40AF42F924D5FED7A99FDAC6C89E2D14C2513241093F168EB3345E43DCD46457862544C7594B7D8B31BF8BDA8A8FD27DC52F93292C13AFEE4486F582E030994D1B96828979E6CAA6308B424C69B03C6F699F77426F5AF486079F6C383A669E86B7A422D12A626AC39A1C209A16832603B464D5C97D3459F5B49F9BB60F4B562ED7C038EC5C7807D2CDC47CDF70CB4D9594A0BEE61CDE141813BCE7CDEFBC20194E02B4C22312A04D73DC68B9C8662A3C7F336CA5D7F46D62EDF97B667A40E73D4CEF21225FF0D699003D13A0A7AFF3A97568169A6174248A5B6A262B89A3809C25C2F231268E3E47786A1BF5135BC806E7C80435E5B7CA03256C07D1549652D1A8B219D9C5C036743C6101185BAEC40F5002B46813A88A9B642F622C6AA2BB301B4CD22A58674C35F2099C16AA4E2B5E730F99B6B9047E13816850645A695FBC015AE78260D6B6082488DD966FE86B9343053AF130B9114D7FD8D3FD450771D56C57E4282B108D43A59FF8D43E26068E1354C6F5FB4E6D88DAC061E2E249BCFA185911EF114D08F13EB7A5729081868A6E3D6688C552E1A14A6451F31A2966E6E0CCBD9AC6059B292CBB1ABC4EA529A65F536339E6BE4C86EE0BE2EE241E7F5EDEF71619DDB49F9D9A304EEEFBB4C7C2E86E4F01F9E95FD310745E804A24BA13D3343D4EB1839ADA5092B89AC87DEAD54FEF87FEEAE99170EA075583636A6C69EABABC094E78D30531EF4D2F58BA9725959BF1F014468AD944A618E2E9394BA1F056DA3069D575610C99C9A07FFA1DE93DFCE44537CD64A34F6E812498959A282AAAD4D97BF8F0B77FAB3534567BD3D27B779F9E1E44CA727D779384A90ADC248638094A4E8588C9A4CD881EC8F02ED40709477633BEEB9B84277E823F314046B8AE8E4FB55E51369B04617D0E2C99248C35A3D4B16351528B245889425CEA2C6578248E8C540BADCBA8F59AEEBC63F498E5A7C5AC56C6C6CDF49BE0CC1248457B2F4BDD6EC16E594ADCB490BCE87CB4CE26D3D6038DDDAAF5A0399892760D24A2C127319C4D08E04A79535847BAFD92314F0C513B7B8C68F83895B37B61603F71E9A46A94D891C8B4CA079A6B2E8D42849192C0458164F58AEE4BABD18C1D9B6C33229060ED7ACA512ED91D149B37D073C3AFE22DBA436640CD2699342ED33B3199415E6C855CB8069386DA4517E7853FAF90AB193A9ADC9D27C544A6B255BD64CA5034D200931AE4E6878C1142F238C8B14A8F6DF233271D61CC77DE34AAFF768BFC1DA1858BFCF0F45839BDD848DEAAAEF57A1CD33C02D3E53DFD825FECB8D2CF9BFEDAC5BEF7EE1EDC8BBF6B26837EEBABF74F29402B9759C2880083FA009ACCC27C3B5191132C572163993C138A5C0D4F9EBE6884686C27E77EF2B77827B7E2D707C8FAAEE1BB26D8AF794825904A062D942DC99E93A106C5288D6CA8C9C66494D9568D62853D62F1E650F29536FD15A215FA97D0C834A59709B6BA360463D1DAA80BBCD14C20C23E5E0396278D469FD86F26D3329B4CEB1CF22DDDD0D4656810CA2448E80DF2EFA0021383D4FA7B290D9FA1561AC6AE15718271E2EA38BEC8930665CDF085B1219395AACA9694CBA2F427722632D8203B8130524C88321C5DE39861A9BA9F9C6B1018BDEDC0C9528C9B18EDB88D651FFB0BB0F39338AA5E97B74B00DE32304C6EAB6FBDD0F578CC3D1618C164B5D3E08314F64A7DBF260F246DC125D9B5463A9383CA999AC0F7E6CF124D15554B4EBB84C9B94DFF95E9BE703E7C901E679ABB9F7F4A6F97D1984B37CDE0E1BCC03DEDFB9384D0F4F0E47EBDCBCCEBA7D940DE2978CF04E899006D521993A96AE746026112A0A794B88C76840C2908CB40034F9A6F0914110E32F2CAF719DDF96DF2F563F8E1B00E1A28EA2C19B54E78893C674CE808CBD72C7CC9C192D0ABA5AEE9AEEBA8876193A8ED941167B20323BD19BB66B4D98C384BD32ED6C66420729C5252BB19C29AF0622500CA3047127C646ACF6B568FBE4A940509DEC2341159CC04079572D651CD862A99A8841716F1E30A8E6E128196BB41281B8DABC24BB65CA038D009404345B4A9D6C1CB37A9ABB60C6BE830CB34B70CB16452A14DE119CBDF444829D1BA93ACBB375ECD92CFFC0D64E7832B94C28B68645F100CB408F8296B2EC34933C72E660CBA0226A180691317FA1EB9F7C986A3B17F1A2F505F9BCE9B989695A6C7A67B925C6F69324E7BF612C2443A31395D6965EA6353EA64BA7998CD47CF7D1ACB626AEE32FDFC641C3BC5B9CF9B409DFEFCA7D7C19DD4153795DE7436C7D467BE23307DD1FB91EC5893C7F00EC17F2640CF046813A093D574A1DCE1050FD19B739624AB1638201A85A88FF88D47E97BED3B78C5E3E4E3091D44D0115C1938880235B1D5C938A5121B4F36E5142B1462F4956583108EADFC5F6183487485A5E30EA1E0D4895A9E391E616A2470887E9616D693142983239B0D42E5E825B8A6365D099D3015354A1E79C3565071249977943FD3B34513A04C83D33050265F4FC7D8354794801610D902EDC8618A6636EAD22D23D5C459A2C46CD738C984F84ECC388D8C387329ACF9241D57FE0A96D7442C9AC991814DB41C4FB48665833189A1617E988DC6F40D626D908AE1EB54734D191A89E894305C648B3065914C844AFB53BF83A35585094C6609C8F54B2609718D95645A79C8CBA28A279B659A7A2BD15CB07733EEAECA7D6916ABBA2C327492C477BDE8295F5D3675D3809596B37EB4566D893183347ED5B74F7E48920AB9A7B2B612D2B2B04B54CC4A289E9AC327D899BC6772EA443F57644C65A250C7F1A561299F2CA6838E388E5BBA3E85CF3D997D27709B3911CFC8EE2695475A21998DCE53CD12BD7C09B17CCAC52D315FD693970A716A9D9ACB7301DE3D13A06702F43B55596FF7FA6475AC014882C38406E9E8EC768EFDF08B146ABDE4E371D5D7553538A5BE0923246D0EA6943C23589E96938229EB1FA3BCAFD387D269D75F23C12461E44EB218920AC094C4498036A13BB1BB371A2017D3C07BA7F337014D7731A36F9D6C62530F6EB2C9A4E5B1BE6E8E55BE420DD09ADBAB4E8484412B9400ED6B5334928C5D54E764AA32AE2B150FBFC08077396D977F8686D5771067DA35C018112045E1938A2709C8CA5A4932C01463D78B25415ABC1F6514DF3CFCB249DA8E4CDD25965A49262C415E8C0864B28EA86C02702A26A2A5800DA28FED38268796189C6C5C72CC93088754243226AE55438CABCD55F963B432F473E5CD320DE3366AB0D31E84543BB609B4B6B2AD93A9C264A8482610D361181D5594E3B473C412B475A3946AC8D4607A9E3A58E34C72B3353B5791AF44EE55D7A2D97C6CB1888B45F0BA0E6E3315CBD6A1A1B4B9691AA54905A1FF4FE475E56774A826BD27F25A5ECD1C84A522975F5DD975F948735DAE4D0AA9987562B64059E7A69A3C2FA79E09D03301FA9D02D4DBBE9EEA3CA458B57A399789A361FA773C4AD4FF0AB9C15DD84307F1243049D00DCB3ADA2CB952CAEB4B9D8CCD645F92596B704D9F121378150631A9B766C353656682236BD34A326DA35B6D449A8CA4E7A474E97B3CE1A922C264641736C58C7ADF8560AB313190AC5982735A2988E4A5BAA147AE916E15B8467490932CD2B88288F851CC84D54DBDF5725AAFF90D0A4B6E30AE37519D33878F60D7CBD8C29851CD93507B069A454BF0096C3C91349520665B549D020DEDB3696EEB566EF964045023D324C38DA15A1C6764B01F6BEC2C3E6358B29196C5EDBD46546821F05B08326D8CB9393A3BBB686D1488C8041FA94A9282C24C2EDA31FD83831487CFD1543F8D5B1FD5E38A2A751D1B77A48DD890A79E9B4BE83653C5A5A1A585B68E46ED2DA8C646A2FB212C10F96C11B5AA0C0D52EA3F81532FAA5E74E016085C63BDA552A95D732814723A0DA3AE3FB23F256B4AADC3922F75AC0902868606288D9E25138CE0085D9288AAD3C184D348DE2F30AB6716B667A46305A61338EBCCA17D589A7048EFA16AEE7DE2746F36E4266A4E8EAAEBE0657274B7B593CDC84632B502B5759226CF2A2026F7D168694FF60034A86B7D90EE39532B378689127CF92B07F997FFE2EFF1DDC37CF52BBFC93D1FD9849B8A86BCC775FE33F7F68BA243C962491EDA9F1B16C74F7B7394FEA462F58229A717C7704C6114EABD04BDDB187BED61ACB36F9089C720AC9A0C2B89144AC37BD3012420A806D7B4C84E9C41A63C2892009D02A6F221C938B904C734331171A5A479F5539DA7664753476882F179CFCAB44ED814786BD4FD4420C86C1066C3309BCF64E19CCAB62A3E61049C64C45C12E231AB8BB1EC2AF2977E9E39977F486DC3ECDA20CFFFCD1FE216C7F0C4D854AA09857C448C48CEDE250C2C7C27AB0A7575CBE64C660EFEFC4B58B4E11AE62F984BCE77CC88B47A4B4A221A307CF238E7F6BFC6E0E1D7B1C74ED12CD05458C591AC5D4C55F1283A7926FC7686DC0E66AFB88C6B6EFB85C4255E02BD0986F2C78B630EBCB295E1A3BB99E8DD4347D0473E2AA9307EA87D074703B8542665E907B8CD2ABFEACF5DC125777E8066F1244C60079DD04C1AC362E8BBF7C70F51DFF103FC7A15378A28391E55D9ECED2C634E17CDAB6EE4C69BAF53512B6340606A2DE3986D829D161558944787D9F9D83F50ECDD45BE3E4E46583676C498DD463F9D54BA37B0FCAA9B59B9B89BBCF8D14A03A63EC8737FF19F702D494284E72E558F28B618084BFED4EC0C153B4B29D384D53C9B96F96B98BB6C355D3DB3D46BD1309ACC1F53F1199D6E1592128BB0B4073013A0DFFE719D09D0EF1CCE4C692A4D3CC1EF64E5250D2D95F39472B20C611FE5034F31FEEA0358C3FBF1296BE661534B04E453A0C2ACDA94CB9B62BB290F5732667DC012F1A564759B87637AB32A09D2062E3183EB6608E69DCFE7CDEF98066B24165A9AAD4E6E1BC99336F98309BD51190F26B08B01ABE135C8B512FC5B200703BD44822BABF0BEB0495C6CCB579D8AAAED30915B46E38ABBC8AFFC08D9B61504768CD3B783935FFD026E6542F71F191B0F957E684069D512142B2ED1C4F72C4AB1CBB1FC4A8EDB7389DA9771DB6D37B2B0ABA01B80413622068F1FE2E0B33FC43EBB974DF0DC380000200049444154964A2F46AA49365D61A6887C86D1B796EB57B5F394FD168EF94B5879C7AFB062F9020DF62A1A95A017F1E0099EF8EAFF60767886E670C094ED225624E25B09461F2AE326261B96F41A4D58EDF4E616535F7F2B576CBC96CE9646830F28722044478B91C0E28DFBFE882527BE8FA7BC50979A48BE26CE3427334BD899DDC8473EFD695A5A0BFA3B8DFC6972B7E47FA9B85114533C7D8CBDDFF802EDB5D38ABC3B5105971255B78D7E67362F35DEC470FB6AEEDA389F0D4B7BF4F338F32AE7BEFA1FA986E388D3A60849999E89AC310F2BCA68735C36E48ADBC0B0D3C699CC22ECD9CBD878D366BABABB1529490B1913A0CDCEA6425D8A85274DDA99003D13A07F9A9035FD674CB014EC2FE974DBA2416CB03A91C21446AC0C72C4A5B3D407F652DCF32413C7B75108CF900B87148F4DA70965BC7C6AA2CD388B1802461A10251B5500608A039634A50C94717E232F1D904945204D809EDEF57C37672FE7659A93EAAB98FE9EC9D233C511CFC7A68DED523A25997055B4E126A8AD313FD5CCDA16317B2565635905C27A9E31BF9B62FB32E65EFE2172B3376165E782952594FED789ED8C7CFDDFE3D4C614221AF4DB18759BA95939633D26413071E0964CBC66799CCB2FE154D4C1B8DBCAFBAEB994EBD6CED55948C962B3A57ECE6C7B84BEED8FD31C0C910F47A9B8A211D24E2D16B53A39564184433261916C5CC10F4AEC6C7E1F473A6EE0EA4B1772E9EAF9BA31B8618DD2A9C31CDFF2109CD84E637D108F90B3DE1C8A76A3D9AED4045706936450A9C2ECCA710AE13855B791B35E0F87BD85342D58C3C6CD77D1D2D232D9629090D7371673ECA13F61E5896FE34ADFD9CA30E61474913405239CC92C6047C355E4662FE7B6BBDF4F2663B4C9255BD6DE712AAC245047B548E9E41E0EDFF707344772CEAD78518942388058C68EE416F0747E33C7BC85DCB9B68DDBAFBDC42C9D234F31FECD2F50AB97A9B939465C311468506956B9A95E04B9B044212A92894BDAAC1CF53A39E9CFC35B772B9B6EB8917C2E97341F93B5A8FB47D2543CAF569B8138DE095E7DF3EB3310C705D764BA8646E2BDA7E59AC924D52F36EDB18565A2924CDFEDC37AE37146F63C4B86716CCDA82B09934016AB8073BE323752B53933866B3AFD064A99F695083DE998F8B4206D94F34CE05464F73C72EFBB09CE9AC218EC5B25550D7463208B041B4CC681277F574288D16D24DDB3341B35C310AAD6A67086690CC5764D098B75BB914AD48295994FEB863B60D52D640A8BC16E494C480D06EB1E9700FD7B38B561F5563C9C5941AFB7506DA10466900D4FF8E7919B55D6076E8651AB95B25D003FC7E66B3670EDEAD97A1C13A3831C7FE4CB34F5BD4666FCA4B6E5EAB14B5F7601C7DD854C441902276306EFA31AB97082598CD0553BCDCB4DB7F04AEE2AE6168ADC76D552562D9EC781E71FA7F8C653348E1CA4A372D2588B39CDECC95D429F338B509BC046504AADD8A212CB6BFBE909FBF47797EC02436E17673273A974ADE1031FF9185E567EBF39F7D3C321271EFAEFAC38F1104E18125819FAFC1EDD407A6AC719F63AD893BF847E6F3E4ED7723EF6D11B54945F687266344A7A74B11A2D84C5B3ECB8EF2F6938FB2A4E5CE78CDD43362E32273E49297219C9CEE3E986DB38EA2CE017563573C7F59718D5BC233F66F49BBF0FF580A2D5C8C1DC6A4EBA3D4C38E20014918DAA14C20ACDE1080B6B07680FFB09EC0CA7724BD9DD7005B5A6392C5EB9961B36AED271F27440EAFCBEC6F4B53D8341BFE5933A0371BC8B20A6BBBF31784DE9A22AA8A445A93C16AE611D4C72AA64C0631C6A4304A7F733BCFD3EA2A1EDE4A3B3F862F26915A80532C421596BA00D41B57612C562499BE2980C2E513DC215FD60FD5C697449674A82A2046909A4866E270D43310830A3E6D3B1EA77716E936F31D4BF542BC40CD598E0AD0D490DD2A68169D88A6673922941E50C084E2CE6A94E4179E4A125A5B19936940C2BF41A198EE7E3CCDE44F7B5F7E2B52F03BFC36872086D2C618A49F9EB1D7F99C1AFFF2E6EE90C91EFF36AEE0676653630E0362934220C0CCDD0ED1C81588A89ACA764CB56A0C6ACBF7CF70D2C9BD54C1C84ECDCBA8D78FBD79955DCA70DB2A2D7C269A7874399951CF05728EE2CB5B868098A96BDB04C5AEA43CCB786389059C3416B11B3BC416EBFBC87B90D31A79F7D90EED35B68090668884B9CB3DA389D5BC28B85EB39E6CC27B47D726199A67814D7F570C2324B6AFB995F3EC09CEA09DCB8462DD3C2517B1EBDB915B42D5AC12D1F78BF5E6E3987BED188630F4A06FDA0E2EF91DBC0217FA95EE745E57DD4DC3C4772CBD963AFA1BFF5523EBA79296BE637282EAF0C95243B158C3738BE83ADDFFC9FCCAD9DC07232EC7557A87ECA8ADA3E02DB61D09BCD138DEFE7A8B794BB5617B8EBFAF5BA02AC634F3170FFEFE3944A94ED165E6EBA8E3DEE4A069D763CDF254F89B05A27571DE1DAF24F585EDFA71B48BFD7C389C2060ED1C3687E0EFFF69FDD8D9770CFCD986C9A7424BB7ABAF6669A846FFDA0CE04E87711C4A6AFAB49A94A094B52949A003D2D7227CD11E9FA04502F416917633BEF67F4C03364EB2338D5808C948B5195382AABE38AA30D4579484D06AB432F42BD12FC4F13F8A48927BE7E6A4C9B04692DF94D9056EEF0A49ACFBB38AF696F494F31854826C533D31D49F7A7442C5EA98666343D16635311A0D7F3106C5898153196E80EC73E6194A7EEE519A799960DF7D0BAFE2E282C2424AF6C0BB39F24034289DCA777E22506BEFE7B642AE7A8B91E5B7377F27AF60AC6F2CD2C5BBE84F9AD8D448164E6190219A1D7BB50C78B4B2CEA6A60E1AC1CE28F12178B3CFBD53FA767F0456645A714633E935DC8DEC215EC633E67728BB1E31A73BB5A58BEB087F6D606CA9588E37B76503D73883E770E67AD7666B9A3DC71490F6D630718DEF6004BAAFBC98465DDA2F6E7D7B337B3867DFE7246BC4EF2B90C0B3A1AB8E5F2C5C6453C0A281DD941DFB6EFB0B2B883D6704885FBCF145670B2712D67DC4E36DC700B97AD9EAFC6B092419FF9FE9FB2F2C403E4B0188FB2EC2C6C642272B822D8A523F703D91E5ECE5CCD0EEF32AE5EE2F04B775C31D99E10AD67A56703077FF8252ABB1EA5239A602CCEB33BB39A96709835955D3AAB35E875F193C60F70D85BCA9D6B0ADC71FD7A0DA1CEB1A7E9BFEFDFE3942628BA1D3CDF740BBB331B1876BB98D7D3C9D56B7B18192B290CD4FAC29F317F609B326DC6AC66CEF84BD8E7AFE07876095FF8FC5D64D3A6BAC25D069ED376F97983343319F44C06FDDEE2D505F042F2CFB40F731EB1DF2C392374930C1C24BACA9A93EAA0C318D1C411860F6F61ECE4CB64C68FE38F9F21531DC38DCA582230A4F88034D27C1DEDB6DCBA0AB36B375C0658AC8C52EE94059566D1DAB43142F229FCF0D307E8A4C1A8D9724AB53363172658CB38BA0015C2F3161AA049881479D6A112636A20624DC2ED954CAE6ACD216A59C784DF41F3C2F574ADBA11BB711E1139A55BE96F49B271F98B6C7942AAF37B5FA0FF6BFF0EBF3E46C9CEB1ADE94E76F91B54C2F49E3B2F67CDBC2E755DD7B6A8B2154C8057B849BF675AA6FD5B7EC8D073F7D1119E252F1438CBE1487E1D5B0AB7722AC8D3D0DECDF22E972BD7CC67DEDC363D9F5433E8DCB971B6EC39C9C17345DADC3AEF5B3B8B96238F537AE58734D50609A4D5E635F36CC32DECF0D7D19AB799D396E1C6CB5730BFA725696482E7C4DA803CF9C64B0C3DF145DAC78FD0169438E1CFE160762947332B695C7C091FBD69258DF90CA7462C4E7CE70F597DFC7ED53A1CB33B78AEE556C6C872F5F85374468394638F575B6F618BB78925ED161FBDED4ABA5A0AAA9C98E6A9A383A3ECFAF2EFB2A0B4970A0D0C676673C49F4F6BD0CF9AEA1B6A1E31E477F26CC35D1C751772FBEA266EBBF1326DF37A479F61F8BE7F47542933E275B1B5F136F679AB28D2C0FA25B3F9F0F58BC8173CA27A88D3FB2C27BFF69FC958456A6E0367BDF9ECCDAD63AFBB94DFFAC4EDCC6D14ED73F36514168CFFBA99424A5E98C9A06732E8FF93F89C50340D4FF362FDB7698C8794843F5999E84323E1A2020C433C00830719DBBF9D5AEF5EDCD249A89CC48DC60D873AF4347855308EDA52768B8BB3422893C249060757BC3811FE495D5CCE179878F7676D2611E5FC041B379086C10C93E03CDDDA2B9D5E53E682199E885DD966847ED542CD69C5699C83D37609DD577F1C722DE04AA34B0636324A4153064502A198A3344D5209D0DE891718FCFBDFC5AB8F336E6579A1E956F6662FD56CF9C3775DC6BA85DDFAB3411CABD492193F4F40171131123D6AE0E93FF91DD6955E271B95B4041F77DAD89B59C773B99BC8647D3EBAF912562F6C541B2E8558D47C21092658546D28CBFD0BA0B1D6CFC4A37F4169C7938A2F8F66667336338F9F64AEE750660577AECEF2A16B979311094FA19289FEB282FA21A1C054B512C79EFD1EE3DBBFCFFC89C38CE667712C339F573257D29759C02F6C68E5BA8DAB383DE672F23B7FC89A13DFC48E1C46DCD93CDAFA410669E0BAB1C758189C2017D7D8D178252F17AED280BA7CE97C3E78EB95538A7A419DC7BFFD8FB41FF921F383E39AD59E72E7D0471373A233ACABEED01539E077F15CC31D1C711770FBEA166EBFF17203571D799AB1FBFE2DF56A85616F16CF37DFCE016F15D528C3654BBBF9C0B54B686C1068AA4AF5E8739CFAFA1F53604C79D167BCB9ECCC5DCA4E6F05F75CB79A1BD72F3C2F104FF5B0A7D5EEFF7F7B5F025F5575ADFF9D73CF3D77CA9C90810021090984799019A4CE828A885A6BDFEB7B9D5E47B5752C4FFDB77DB5AD5A87DAC1AAAD1650A1D679061C502C606592790A53022401322737C99DFFBFB5F63E37272108416825ECFC4ACD70EEBD677F7B9F6FAFBD866F298256047DE254758C2B2DB7999DA4E326A095C72CF25F39EDAC3391F3514F28C7B1425EB801A8D98DB683ABE0DFFD01C2F53B6086EB61844977C38920059BC8D5411A19F4D0B3AC27E5F692BD28322488A0D9F2A6EA336B1739A92C0E7A8664468695632DA529454BAFF6CC0E91E34BA980641951F35511210DE8142C4B849935025AD62824E58E85B7D730C0CC92692A22658C83A32C7F2A937F6D72A384100709CB3F41E3337723D6528B56C38375C953B1591F84B02319179F7F0E8AFB66F03D91B60769E8999A06978BE4561DEC090A6B3A6F872B1EB809A3FD6BB9F0C5EF484699A7185B8C12F6670FCEF1E1862B86DB72C1DA952E44959FD83028684B1679ACAA14A1250F21B86F1D0702CBDD03B1D3330C9F3A4A50EDCAC1AC215E5C36A15868A2E822E990F29CB9138DEC68BB65FDA7A85DFE0206552F479BC38D4366B608D27906E1C242072E9C3404879B9DA878F5210C2E5B48C5E6A87164E3ADB4EB50E5C8C058FF8718182C4566A00A7B3D05D8E11B860A2D1BD9454370CDA5E708822653A0720F56BEF414721B372129588B9D89E350EEE88396700C85913D181958C325E6D5662E96254CC71E673E5BD0D3CF1DCDAE078DB238FE3607A14010756636962793053D106D1113E7146763E6A40148F4B981B01FC1FD2B50F5F46FE08B36A1C5E1C37E5701367A47639B7B30CE1B9C8E2BA70C8B4BA8F289D296CD117FD214412B82FE5C041D0FBC49DF99B4B8E2590AF1E2552A10B0DC0232B068CB88E1A28238C107596F9A5A6B856B4AD156BD1DC1CA2D68A92C45ACAD810B149C68851E6D80CBD1CA0515A2C250A6B0C5A57364F9AF5CFCA2D2AEFB5F82A0E9CBEAA948FE66FA9DF07553F091E5963493FDC7B19817D1981B219808E86E44137AC1DDBB04E983CE85993D18706673977222F1F6325F994FCD9848EB9CFB214A226382D66094AD42C3DC3B60845BD0E2F0A0D433107B1D7DD0E648404E4E1FA42578A0932E89164690F2F29C3E64E51521BF301FA641F74AD6B586950FFE10839BD7C38885D060A661937714B61BC538E82EC4972F1C89497909C2AD441B862C8996721F888643D0C9F2956E17FF9EF5082FBA1FFAA1EDDC7E6CAB67343EF54CC041672EDA9C09B86268322E1E37902D53EEF7C8BA28C2DFCA3A4D5480B2AB0C55EF2FC4F08AC5BC89549B1958927805767A8763424E08174F2C4620968803AF3C8C92032FC21109A2D1C8C0DBA95F45B92B1F03829B31A875338AFD5B51AF7970D8DB175BCDA1700F188BEB674C1204AD033BDF7B0ECDAB5E426AB4116198F867E234EC77F44562B801C5A14D18EEFF982B126BCC5CBC9B7825F6380B71D9602FA69F4B697644D0EFA365C19D680D8651EBCAC13F932EC07667119A35174615E762D6C401F0B94C38A92BFACE3750FDC2EF60C642A875656187672893F97E231733C7E6E3823185B2B3BA585DA282D03206E45A5504AD08BAFB94657B85D5CB90F574A52E253F7D22FD4E783EC925600F544B139AE269965F84B539ACCA2AE18F634F2A25FD879B106E398840FD2EC4427570045BA0556C47E3FE8D88062A61B20B848A5E447300CB2D204A5E0449F3FFE2EE87EE8DD84ED0A2EA51E47E5360877B146A06C2BA1BC1981761A4C29B940B5F4E112219FD11F164427367C293920747420E6B4788A601ED9B45FBC6219D409D02AFC2C921CE17CEB2D5689C77077422E818A58365A2D691C4644D8141129BA26D2A160DA2C5484393B3179A13FB61C4F8F118599401A7234C9D79F1F18337A2A86D279CB1206A9DE958933001BB9C05A87164E2966F5C82DE2E19789512B3B65B127A16D4EB31164340D37064EBC7D0963C046FDD6E440C0FD6FB266185670A1A351F12929270D5B83C8C2ACE16DA18D1288C78299DC88E21E2DE7FB8110716CFC7C05D2FF232AA35D3B024691636B98661505233A64F19089F3703FB5F7D0403F7BFCA297A4D7A1296A4FD27B61B4518DBDF85ECAA15C82B5B0297164293666253D26434F41A810B278D465EDF5C3EA56D7CF65EA4EC7D8733400E3BFB6099F74BA832B29117ADC4D0E07A9434FD83D76CAD998BC589B351EA1C8099833D98317558DC82F62FB81B2D547D696662936F224A8DFEA8D35D18D43F1BD34A72A1075B71A87413B2AA9621F1E06AAEA02CF30CC0DAC489A8D07BA339EAC60D5F3E0FF91974B211325BF48FCF97AC9A48DFC9660DA792A0A52899DD3AEF1890B43F177609D6639F9CEDC927F1ABBA7275D21FEDC92AD6C5F1C402B9C8651C495CDE39A3A58B328663D95CB60349201841DB992ED8DF3DCAB213B42D3A68AF7F8E3BA42582C79A349E894E8BC1B2C22D66E247987AFEF985887E380A046A11F61F44F4D056040F6E40CBE1522E8671469AE1D4029CDB2A8AC9492B9AB22A68BA3B89B29FE0A0ADCA46CAD4A0D2613EE03B2873D78980E6419B968036473A8CD402A4F51D056FC168387C3980D3C3162C15994073713BAE0E35E2B645DA6171C7D52DAD0A482A1311696266F93A543F3D07465B1D5BDA41DD4440331174989C52470698499585D1089AF474541939D8EC1E815E8346E2F2097948F7117E4DF8F4A15B9017D88B685443B599834F93A7A254EB832647126EFFF625C8A4D6E0923C44AC526CB57CD261DF3F55BEC5D0AAE9A8DAB402C6A20790D2548E90C383D58953B0D4338DADEF9C5E699835A50405D9E463172E27A10047298862EAE9BF871A43D8BB681EFA6D5900A7A1A14E4BC07BE9B3F1A973287ABB9A307D7231B2533370F0F547505CF61ACC68000D8E342C4ABB9E53022F1EDD1729152BE0D9F4327AE9CD08B7FAB13D7902CA3D03306CF8304C9C300A08D562D7C2FB915CBE1215EE7CECF50CC61A730C1AB42494180751E25F8B92867FB2555BE3CAC192C499D8E52CC415250998317584E8FCB2E703D43DF73304836D687524A2DC55C439DE0D70C1E77220C70DB8DB6A61345620335C85A4483DA7016EF18EC0074997A0494B803BD28ABBBE3F133EF98CB019214F4A1AEB8150ACE56409FA1C18DCF65D3C77E251125A30D4F498534E39622F356E58AB5CA6FBCBEBB90519CF954DE2C02257EB39962266965126129AA462617B018074DBC8060F2CB828275CD6B95B8D42E8ED2D69E3A823C26B9D9C84718506BBE26B076BC1B2EA3A32B5BD494F20180591F46751D0095241FBDEF6AFEEA8D2DD1BFCD75FDF0E2F6F0961D26CF6B3DE472C7818B1EA52A0621B5AAB7723D45889B6862A44432D2CDF2972A9651FBF2E543F8E37165E9B96ECA6C3443846812E13315732CCE43E48CE1B0E67FF91D092F2A0E969D0CC3461295B2BBFC37F8FF769C2B816161595CB85417D18593888166DF9A7A87A760EDC813A3E0EB7908E8523097EDDC3963C05F2A2D40040D3E1D793516366638B391829FD07E1EA8979C84A8A00913A7CFAE08F50103EC0A5E7871D39589330097B8C7E68369270DBB72E462F937CE9526785FDC4F2E192EE23FA15E5A6FB351D8737AF84F1D603486D2A435837B13A692A96FAA6211A73A05FEF2C5C39A5047D332831CE326B84BFC1EA8D4B963859D0FBDF5B80FCBDAF02E110FCCE54BCE5BB049B7DA3916134E1D2C9C5E89F9589832F3D80E2B25738D5B2D19589B792BF8C525731668CE98B22AD12B5CB1722B9A11449E1266CF38EC41E5701D20A4A3065F268A4D76F47F9A2A79070780B76FA86F2DFB7600022CE0494380FA2B8710D4AEAD7F07DD5B832F15ED2E52835C8C591841954A84280ECFD00D5CFFD0CD1363F220E13F58E742EC60939BCD0A35178A2ADF084FD70475B39504B4A7BE47EDA953C061FB827231C89205B6BC06DDF9D05CA3DE2FC7C918C249A1A939A1E8945C5FB3F9E689ADD2ECC9B4762496360907AA1244041D0A2CA56B481A6F446291E2E6B0598C83BA4C85A046D13236B3F98CA652D0D33D9F957F45E90BA2756DD834D4955744CA2AA4EAB56409CB62D2E678296E1AA882108DAB4085A66D2D2271E15BFEACAC8E9646853BBABB6206D4FA7EEEB5FDEF2EAD4DDFA697EA7782EB30537B941E89FD559BB1508D60147CA11AA2E83BFF6209A6A2BD0D2548728C95376F34B1822423C21A6BBE1F0A621BD7711D20B8601990522FB42A32A32EA77480F06599EF48051CEADA549DCDD0FB52C1FB933480B8BAD8AF275A85AF013B85A6B118A39B0837DC703508174C09BC26E1EF2119B86136D310757DB45740706E5E760E684626450C7AF4823563D7803F2837BE04614754606D6F8C67399759D91869BBE7505325D244F2A02AD421A56EE1A6C6D897C627A0E299BA37AEB2AC4DE7E1829F5BB79FBDB903401CB7DE7A2414B466E5E01AE9A988F3EA924092A3C5FFC68B26F23CACD17E8DBAACA2AEC593C0FFD0FBEC31B4CA3918E77D3AEC216CF08F47136E3D289F9C84A49C7A1371E41F1BE1779C7AC77656351F2B5D86D1661C698DE38B73011EB5F7C020995ABD03B76049B9DC3B1CB3318D5097998366924322B56A079F5CBC80A1CC0EE8411D8680C42996710829A0B25AE4328A85D8581F56B78CC756606DE49BA023B9D859831381997B20F1AD0F72E43EDC29F221668E6DE9C018787CBE9A9838EC981D930429A07CD7A021A5CBD38FF9B0A76A83AB24CCB42821E443F4F1BBEFBB5CB4964954D4BA2432A42E2C0294BB11250DDF541EFC2DCF937E1AAAB47C3246959210E2E1566AD188A2D0664A925C8A99546B40CD6B3EF51C648C4DA6D2770BB1B52FA662CB555AB0B7CD429E697D455DB6D7869615BB95C528ED7EE72E79D4AC4CAD940B1BB45A5F7B4DDDD28C76267DD78128075041718B605C3ECE2B014C9BBF9347679B922E863A1C8AA6DA4C12B349FE581593C3C32EF97BDB531AA586C01A2E416A132F27655BCEE4D90CC2563EA31A565EC03406E0B2F629A8B33192CC39C8D4D2221EB193B45DB3697BAD3F8F6AFC1910573E068A961A9CD3509E762BD3912B59EDE48CDCC448A4717ADB6A41A1C1DCB5D91668C1D948B923EBD58B088326556FEE67B286EDBC225DCA4D1B135710C4A1DFD506564E286FFB916E92ED242A1EC189B39C21E0AE1DEE12C3992B400D0B47B03428B1E81E7F0564EB3DBE61B85B5BE8938A0E5C09399872F4FEE8FA2DE3E44484E5A147CCAA7DEEA6D1843E9864F7178F9DF915FBD1241231147CCDEF8D07701072E07240470D9946224FB5251F1CA431872F04544A311D41A5958927E1DF6B806E0F211BD3065580EC27B3F45F96B7F4056D34EEC4F18869DAE126C750F418657C3D0BA65E8EDDFC99A23EB132662A37B140E3B3250589087017A259C9B5E4351C35AF67D927F7949F24CEC20821E9288E9534748825E8AC6857721D21660774EB53313757A0ADA742FE3AE474268D13C68D212516B66A246A3134E32029A81D4B4245C3E6D0C06F5F6B2042A0939116948656FE179EEBC5EBAE183FEEBFC1B71D5D563E0229D6DA9D42D96A6A42616BD12D0B3B56A59A672F90A8F8B4D045BF669B4424BED4B41B601B308D48A6F73A71C6ADC41042D26DB124468DF0FA45C2F1F4BE5A6CFE6B3F4AAC4770A2A46B3B92DF83358AD475AC2D265199756906BAA43319A70D19005DD4A047D9249025DF18522E86312B4AD29B71557B075426AF7BC49AB5A8660D8C541A4DEED49B2C258D224606AA2209FD8202C91758E6758FA48D66E2F89BA7B1B423B79F17736173EBB0ECB57E1D0B37360061BD01233B12EF93C6C3687A1C548C4AC19E330342F5376F110962E95C953CE316F5ED20CA2FF7C78DFF7303CB8018E68107E3D0107DC456C41EF71F6C5F7BF733D5298A02DB56EE13BE64D4E37441E333F1831902A5DA8B294F3A063FBD6B06F789FBB18DB3D23B1C3284238BD10578FCFC188C20CF6EDB29FD1F6E0910F32166DC3B68F16A37ED56B280A94729975997B10569BA3B0DFEC8BC129315C3C6900BCDE3454BCFA304ACAFFC6BECC1A3D1D6F675C8F3DCEFEB87A5406260DCB8523588D6D4FDC85BCC6EDECDEA134B9B59EF130C37E4CF62F4376F4089FB896A75C8155AEB17018514C1D9987BCD86134FD63210A1BD7F1FCD698BDB1287916769805B86C8807974D192E5C107B96C0BFF02E048361343833B1D97B0E4ACD621C3132451FCA681B57815241929F4E56861B6E3D8ADC240D974D2C417EEF7491BFCF588AD453BB1179D411BE3B043D8F2CE871300D11738977A4B18A9EA45B99ADD338638AD42926525AD3A2B58CF859CE93D503818501AD66C15C7B600BA9B0E6B928D6A240359BC1B666042CE0A5E972FE6D556B717FB2D426E757516AAC654A5BBB87A8B6945119B9E90892665BDC3A245856B474DFD0DB070331B4928B23AED373524F6487172982FE2C0CE564705A9E24436B7717012819D1B02E205FA0D40BE1205737E6271EEBB4CA7265AA494C7605E1F5606587F01BCB0E06D20778122E6F61D9580681ED27B24F48CDEEF0823970B6D521E8F0E293C4F3B0D1390421C38BABA68FC7F0BC2CD92FC44A14A1078FFCEF74A70ECEA4083B80958FFE027DAB572029D6C48B9D3490CB5C85D8E41E86E9332F47515EB66819151F376D7851847583DB41D121DAB02455FD55A859F2185A377FC8CA74247854E1CCC33ACF441C9019AD5300002000494441544A1A84CB466760CA88FEEDE757699259FA18F5E53B50F9C133302B36203D780407CD7CECF60C6317C411770E26F5F7E1C24903D11A7461FFCB0FA0A4EC796EB9556BF4C2A2D4EBB0CB9987D9E76463E2F0FE7038C258FFFBDB5058B30A2DBA178DCE5E2833FAC18806901FDCCD1A288DCE34ACF49D8FCDAEE128EC15C3E59307A3AD6C1B1A962FC080C6D588C2856AB31F1627CF44A9D91F570C1604CD5A2B7BDE857FE19D0805435CA8F271E285D8EC1A8A1A3D0D19A98928CA3185EB82C85737782349766A18D03B15F9998930B8E7A368BA2C8891BCB25645AAD445EF706C3F511FF41ECC9D4B16F4043849528F5AADF12CC926C032558478935AC919719F855433E34547CC2C5AA75995BF6C53DB2D6CCEDA22F296C145EB59621131B16E453F4B6956CBE0A1B88C8AB7E2CD633AC6CBADCD43122CA3C2811F19A894BF675FB6C48B3F410A9975786078A39095BC6441539030103F6B77E3E93FF6A58AA08F858D65D05AA71F3E1AC948AE95CB67113413B95C48F16BECF477227325F3BBED660E5B7D640189335EBC4F86B53079750B1FE0C910B4FDE427F285C57994AC32C7FEB538F4CC1D7005EBD10A139F245F848D54EA6D7870D5F473303C2FD36AE9CA2E11FA7C22523628B84B0910D480BDEFBD89FAD52FA377A81CC9A11ACE1A38E82AC07AEF38764B5C7DDDB5B2E3872833178F97C8F76E0B86B07DC72E64676723B7572AF45023CADE9F07FFDA45C8081FE67C703F92B02AE97CCEFB9D3CB22F2E9C3C52A8B751493E9112737F0CCD75D5D8F9E1CBF06D7F03E9C16AEE85B8DF3B04DBDD23B045CB458B2F1B33466661EA39C5A8AA8FA0FCC50730A4FC157E6DBD998545C95763AFAB10D3C7E460FCC802E8868E0D4FFE0AB9FBDFE5221DEE65489D4CB8ED54845D27FBDC45D86C0C41754201A60D4EC6F48925D8B6FA130E30165316073C3862E6E1DDE4194CFE579478398B83F5B6F77C80A6857722126843BD330B2B922FC51667099AE0C1E8E2DE9839310F493EEAEE220D4C56EF13A737CAEFA63D8D4F340CA9F0410B706D26E0496971ECC1DCBFDE88D9574F80C1BDBA48C65774A6B10C76663683FCDD744FBAC86F642A138D24C40C6BEC8A62A2155C6D5BC6B6EC0EBB535A3E46B4B6E447C45B8575F062481FB31C799C7B2DC54B2BABCE7A0D6F64BC6E05989657846575A45D7494FE9994F1A56D44740A7520108A2018A0C2B61379DE4FEC1A45D09F8593FD682517587BA275877397D435B0FBB2BA3B4B9D7231AD9522F768B139B4FB21444A5EFB3FDB279FD8CCCBAB44D71661C15ACD5A439A0346D95A542DB81D66C80F3FBC589B380D9B9D43D0EA4CC24CD2E2C8CB8867D15A046DB27B43183524D644FD08FD872BF1C182C730C0BF11D9C172F68492457AC03D1007F5DEC89B7419C64D1A6965A3F35DD156B77FCB36D4ED5A8F8DD56178FA0FC7A5138723CD15C2A6656FA061F5EBC86BD90A2F69828775EC4918C62E86DEA32662C279E7C9EE2B0211E6864808812DCBB0EF9DB9486F2987271A4034A26347D244ACF68C47B59182848C4C5C33310F05B9A928AB8BA2EAF5473064CF0BAC04D8E0CCC2A2D46BB0CB55C8591CE347E6738A5EC5476FA2FAA3E791836AF882B58280B817A08652CF50ACF58EC321470E90D00BD75F320C45D93E6C59F531EA563E8FC2865520BDC43A672E96265D823DCE3C4C1F9C808B278FE623BA63DF47685C783722A4C5E1C8C027291761AB73101AB5048C1E9089D9930AE0F350AF494BBB445882E2B4A0094D109E5A8BADAC34378BFCECAE34CBCA6E27A8F822EAA2E5D55FC9C5317B3C28BECB8173DA08659B2D3E3AD10230840F57A3A86408D8BCB10A8F3EF6111A02D4F1862C7B07825A0CA637821FDC3803E34664C3E0E6C2F2F5347D64C6524C3E063404A378E3F59578FFED771074F810D4753CFADB9B9099E212CB5716717135048BE5687C6BAD0E60D7FE0ABCF0C24BF8EE37BE8CDCB44C6801A108F6D25BFBF1F7D73E801E16C60F278A506F479D7A66B600861FDE8426DC75D7F7D0BF6F865857D4503A7E6AB5DC2DE2D41808C4441E74975A14DD7A2CE3172B823E166EF2C864051FC4BEDF95556C375FBBBEA27B532388BDDD41228FFF36061622A3EDEE89788BDAEEEE09FC30502054967EB3BE36D99F5449B81A8716DC0167A8152D7A22B69BC3B0D799CF043D78702172333C421A34148646476CC36441A2ACDC5CF8D253C542275DC070149F2C7D07DAFA97D137B0172EF811881A68317B71F795C34925484CF621353D15BDB2FBA0A1BE014DB50D8856ED42464B19D6E8037020E31C1467B8316D74211A0F97E1C0CAD7915BBF1E29816A2444FC68A0CE2466162A5386C2D5B704D959D9C8C9CA463414424D7D132ACBF620BB6229926A36B0B07F2BDC68766661933912EBDDA3D9D21B589089FFB870384C43C3BEDA180EBCF2008695BF045289AED7D3F156DA35D8690EC08CD1FD3079543EDC0665111EC6E2B97F4251CB4664B651EA9F9BF1230ADCE01D8B7F265F047F484356660ABE7DCD04243962D8B66A25AA97FF1D054D6BE1D05C5CB0F361D225D8C55A1C89B8642A69713860501EF4DF7FCA7AD0355A1A56279D876D6609EAB5448C2AEC856BA61422511234BB44A4651ACFA3605E8E77A2902E311924B08EF571BBB57B043D77DE4D9875D558B84C725548C7099BC2D24097A7403AC7B4D607F03FFFFD07EC296DC4AE323F9AA254804F454ED476CB40CC15C0E40BB3F187DFDF84217D3C3068B7E788A3A8FE0C3407F1B3BB1FC786B2FD987EC9798CFDAE4A076EFFF96F31E3C27CFCF1E13B58B48BA582B97E401809968BE3577F5A8197DF7C0DE74EEB839FCFF92E7C0E171C0160DEEF97E0A127D760DB7E52AFA18E4394764827204A1B0A028E565C75ED97F0A35BC6A0A4A43F123C54044729B754A4D59ED36D4FA00EB6491F340765BBFD307649138AA08F49D0B6731253B348D33AEEE6D8D910EE063B5BF4DEDE8AEBE88A26CBFD6CDF2AE25B44B7D784A54B42B9C8949E268EC1BCC8CB3FC6910577406F6D421026DA3C59A88FFA107138E17639A0479AE1A094C0A88E58248A88E1C37EA3376ABC7D9056320EE3C70E45BAC760E1FA582888EA2D2B50BEE41964B5ED83470B70697AB3918CDAA8073E230617A53C694EA114188EC0156B83116CC4EAD44BB1D21C87443D887347E561DA980244EAAAB1F495E7D0FBC82A0C0D6E833F14439BD38B7A23151167129C4E83CFC014440B8648E40AF0B41D40A2A3852DFB327711D679A7E090DE0B7E331543F39231F3FC1148320DAE4DAA6A88A1ECD50750B4EF79D652A646044B32FF0B3B5D0371C9A81C4C199107939207A8747CFD0604DEBE0F03DA7622A43B4597183D1D9B93A76029C620D11945612F135F9F3D0EDE68045B57AD40CD8AE751E4DF80584443B5230BEFA55C8152D7005C3AD887E95346889349D907A85B70B7D8641CBD98ECB73A07A259F3605C7116AE1A9F87440F159AD0A2940E8278968F5590258B7D6CEBD6F21858F673BB4FF5447DD0BB319F9AC6CE1ECFCDD23963815C159214A9693959BDCBFEB917DFBAF5E7189A3F187F7CF007209916B2B223E4AE8B6AA04253B26257AD6CC5AC1FDF89824169B8EB860BF0DFB32F16C95131E0A6392F63E58AA7B1F4FD67D116897087189FDB442006D43437C3E5882123991A0AB777899172EDB8E68A6FE1EA59DFC0DADDAD58BCF42DBCBBF83E64A6BBF9F92DDDB40F69C929EC9AD9B0A305DFB9690EEEBDF7664C1D9F2FB289C867AF031EAF0B098954F445731D1601453A038663D075433456B0A506920FBAADCDD67CBA1BCFFE31694815AA1C031ACB776777F0DA08B083F7A3F35B9CACBFA1331FCBCFEBEAED3AB80FBB32EC4F687170662C5BD0F6283F3995F58A35A85C407AC40D701A0622113ABA894D8ACABB4D3D82B6500486D3C7DD4B5A626EEC4B1D8D9D463E0E9A7D70DE97A6627C111D0BA991400C5A2880F235CB50F9E18B488DD5410BD6C2ED8CC2454F4C6B1313212D7AD2B56E23253C33098DF0624DD2C558E71A075FB419E78ECCC545E38BD8E3595317C2DAA77F85A206CAE8F0C3A5B5C149565084EC7FBA551DA170084EC30B4D73C1AF3BD14C9B823309BB1246E1236312B7004BD2FDB8F9BF6720C31D030D91B49CABEA22287BEDB71870F0656854C9E7CEC11B89D762AFBB18978FC9C28461F9F03875F6B1B7B6B562F3EF7E8C01AD5BB85B4B839ECCEE9B4F5DE76093771CBCAD9518579080EB2E1F0B570CD8B6FA63547FB410039BD72114D1D1E0ED8777932FC736477FCC189280CBA60C8383DC24651FA272DEFF428F86D1ECEE8D8F122EC03622E898817145D9B87A5221127D2E993346046545B185CB8AE2009DC21996B35AFA4CAD926FB950BA91C5F1F45F45576FDD9496AE159EA18F0E01ABDFDB8E1FDCFA4B2C7CFB71F89B745C7AD17770F1851978FA9987D90860D78BD42B0B8480BB9F3A88A7E73E8E5FFC642ABE7BDDC5083545F0D56F3D8AB797AFC65F9EF80EAEFFF26491F921F71DD1B838C49A38E15004A66E4A5F1615FF46F1DC734B317EE8681416A5E19AAFFD1907AB77E2E37F3C285C21923F69D326A9F89FFF7A099A429BF19BFB6E8583BC35B4B7B3433ACAADF4C4466F595D84A8506D14FF2774622C538EAA08E9DF31BBD69CD033D9F12265417717B47637B07445B4BB1AE26E906E5BB2E2262CEB26FE3E965BA5F3FB75211D7052272A196C69F75252DEA9DC25EA7763E35F7F0AB3B501CE4850746661B7A0E8BC428130EAA412811354F1DB0637F69A85D86BE6A3CC918B31238660D6A47C6E8A100983ADADD26DA558FDC10AF8FCFB911B29456AE4303CC11AB81C746CD4A08503DCA9BACE9DC60248075D79D8E518880A473FF47136E2E2D17D3069E400F62D92D1D45A538757E63D8E5CFD30D2DB0E20357404495A10313283A9DD143D8511222A37AA5CD9A874F7C35E671ECA1D7D71D89D8F94681D466569B8EECA29ACC8470F1BF146452DB0E7D5DFA1E0E0ABD0221A1A1CBDF08FF459D81BCBC6ECB13998306A0074A703C1A886482488AD2F3C01E7BEE5480D57A3C948C14EDF486CD20661AFB318FD5C8DB86A4A3106176531B65BD7AE42DDCA175058B7068198816A4F1F2CF39DCF42543386A6620607396340D93F70E0B95FC3156E456DCC874FD2A66387B3888B82461566E1CA890385DC282F1C2BB225C8998EFA96AB43E83A8AA0A9B82CEE04E9C404276E41CF230B9A2A09857109C4C8192DB234826D0EDCFFCB8528C8ED83EBBE3205F7FCA10CF73DF810BEFED5BE78E24F7338A06CF5004538C21BF2732B2A71FB8D8FE29EDBA7E1EB5FB908DFFDC18B7871F15BF8D11D3331E7E6AB58CE56BC468C93525923B4A13B4CDE54399D3004341E69C1D3CFBD838F56AFC66F7EFA43B85BB23066FA4DC82E4EC2C72BEE15FD19E936A595FFCE478DF8CA377E88154B7F8B9262526724FDF428DAB4283C3A694552F8CFE4C566F503A66EEC82B5A56B87674B182E816018810061DD29F3A4BB1C63BB5E117477C18B9BB3EDAC69B9243E3741DB99F9588919C732DD4F6653E04EE9C27F470F3647B3AD6D27D4844FDF5C8823070EA0AD95F449C2D0751D016AEDA5536F6A6A1A60A02D4C168586A8D38B5A2303B55A0AFC4632268C1C844BCFC983E910957DC499F459A5DB0FA072C70678FD7BD15A7B0091D64644756A446BC0156D434477A2C148C1A158321A5C595C629E96D30FC5191AC60DCA45769A57EA6A88BCDE37DE7A0FA6BF128EA60A688D35D04341C4A254D91803C8C263E52413471CA9A836D2516DF442C44C465A463AFA26C4307DDC20A4249AAC1AC84DAF751DF52DC0DE8F17C338B01AD5357ED4867D2C6BEAA71CF03139183BBC10BACBC9D660341245E3DE9DD8BA6209FCD507D1A4F970C0CCC3612D037E3D15A3FAB870ED0523E1F5187CDF15E57B51B17125C2E5DB501BD470584FE60A456A083B7D683AA64F1A299ACE365760CB6BF3505975184D8E642E8439ACA5B3C8D184C179B874FC400E12C6D3EDE5FC7366822D5D4DA8218A9C07C16FD68572B159EBB91B163413F4ECB1305CD2D32A7DB2D15818AD7E1D358780EC341DAB57EEC3753FFA33060CEB8BBB6E3A17174F1BCABA2AC240A572730AF2024FBCB5157F7FF61DDC7FDB2C242699B8F3BED791D3D7837B7FF15524BACDB884ABB5B91021D2B4F2DE2012495077288465EFAEC3AA4DDBF19FFF730186E5F5C182C7F6E2FBBFFC19BE74F970BCFCB7DBE0A4A51A0636AC2B4355951FBF79FC03ACDEB006CFCFBD816313F4C7DEF939C8EE9F0D9F69F0F221FDF70E82639C464B4B5E6C74E236042173A9B72A54E92EA39E86EB3B93B4DDDF701A3ECEE2CC0E567267BFC7C910B4B5C28939395DCFDEEF5188E77FF4C9A7D87B28885030C8D177F2B3C662A4B31C6672A0DF450D933B7F53A523E97A2499C005E34A909FE16312B70A1038B94ACA64F8FDAD58B67A1B0E348471A0B6192DC108DC24E0138D211C73C1E7F120332D0599A906268C29417A12BD373566A520937C70886E740DADA130F61DACC4A61D15D857E147736B048168186147944BD1A9EB08694A27A724212B3D09593E07A68CC8479A5758EE7C7A666952E114A0F2053AEDD635F9B1F0957FA0396C220013E9496E5C36B61F06F4EBC5562A9F28F8080C541CAAC392959B51D918E4D6C4A6AEA16F5A322E9F3A185909E4E327670F05F3A809AD8E2D7B2AB162F36194D53673897C82338A8B866461D2F001A28A929AEDFAFD78F5C38D286FD4D014612572E424C43069587F0CE99F0597B39332A3CCD464EA15BE28AB5DBD3C8E8BC579541C4500DA21CD2CBE8CE3591CBB70CBCD4FC3347663FE5F6FE42C0E879BCE51EDCA88EC0927E0A8C82F0C140CBC1FE1E4723CF3C2FF61D2900CB8B84E80CAFA35C44231684103F547DAF0BDFBFF8CE9575C80F3F30B70F7AF9E40E2C00CCCB96936B212BCE021D230AC5253D640D2D016069E7B6629C2410DC10050BAB309D0FC18382C83E32966C08305CF6EC1AAF2F771DFEF7E88EF5F3705CE2050B5AF010FFC6E39FEF2DC6A34C70EE12B5F1E83649366979A73B462D65517E0DC69E3E22507E299134756DEC0293B891E152EE1B5ED8A4CD031B406A80D9C754AF9FC64A02CE893C5D04E90274B8E27FBD9F6D7F12EFF39DEC83ABBC9D421AB4C95BD6DE41E8E0187EAA3089165CA8D6885B5C0DE37EE8012159624556F51C942348424534356326579D093257291F936C93294ADB1285BB8A605A86E89A2B2A61E8DAD6D8885C21C81771A0E24794CE4A425232BD584576AFA58B2AE8219ADBC5EEADE224AC1EB5BA23870D8CFBDFA88B45B4324871A83DB74C06502E9495E64A726A05782133ECE38104F3EC3C72956F2C1D248EC5FF4DFD9BEB7162D012A458FA257B217FD3312E03234715497B7C0BD7AC2C081FA20AA1B9A118984E14204FDB3D291996C726770D258B17281A9634D8BA6E1602D5071A4164E3D8A04238AC2CC24A49208BF4C0FA4937855730C076B5A106C6B854B8F2233D1859CB404789D0E21A5D185FB8BDF807F6F0B627033E3CF26688B8C2C4E12BC1D4373B38627E7EEC2ADB73C03B77317E63D75235BD0BA5B64FC58416A7643C8E05F4D335030E2FFE1865BA6E28E9B2F8657A7EA472A3C914740F651014F3DFE3116BCFD045E7C791EDE7F6D3B7EFAEBDFE3EE07AEC33533CFA556C6EDA9A51C9FA37C6E4A657460F53FF763F6E5BF4673B30B0167332206C92D046525AB17E15036A0FB60646DC7DF5EFA052E1D5B0433081CD8598BC75FD88D47E7BF8B81834DBCF1C26DF07944E607B94AE23157C9CB56A36A26E8CEA75A8B03E4DF384848047DDC4C82137F5E15419F385667DD95963BDACE01D6F7C7DA9F44BECBF1EB66ACF7B66C0D7A6EC354C34C1DC59D44F6ED4D608E17738DBF97ED09A2F7A30C8E48240AA7A1F37BC68924EEDBB7E596779ADDAEC66EBDBECBA0AD7424D8F139160E748DCC468E7F6A67DCACF7B15F67FFFCE361D29DC52A0885B25DC42750A054EE594CF22D7E0D4FCDDD851FFFF869988E5D983FEF265C3DFB1CE82E51312ADC63104136DA5542C0E3CFAFC4A3CF7F8037FE763B7AA73860905B8CAEA56BA496D85FFEFA211EF9DD4BB8E11B6371EDF55FC3BDF77D8C3F3FF3189EF9FBF770E5E593DBC95CBAD9A3BC03508051C3FB6F55A2E97025E6DCF53E6219D5B8E9275722C51D8119011C6127566DF0E00F4FBC0733670396AF781403331399A049EBECBAEF3F8EA5EB7660FE633762FAD402E195677D1D2BFE272A8259B2C122EAA300958B4D4E14EBC59CD57AD0DD5971EADA2F2E029DCD10FBCFD6F75D5D73CC07C53654EBC4C98510ED14261E365B74F754B2DB1717E913BE332668AE02156EAEB8D0111FE9A368F1EB786A5E296EBD653E9C8E3D2C377AF5D5E361182278460D7588E00C22E700F0F2C26DB8E74F8FE0E1F97760E2C842B8C8AD41E67B58541536B70037DFF90B5CFB1FFF8504570043FBE5E2509586DBE77C883797BF8127177E13D7CF1C071759E332784E27A417DF5C8CAADA5A7CED9A59D0DBDCF8E637EFC6E4A93370D125791832B82FA73E52931FB2CCEF7970377EF987375134F2003E78FF374873027A40C3C72BAAF1ABDF3D85EBBEF925CC9E311609E443A1A033ED1D524287B271D8EFD54D826EA32C8EB356B0FF84979BBAF08C42A093492EDC20EDAA7DC2F7D79170BB1A1F079DF8CCDFFE57F6E572CA5D178C7CD479F58C42ED94DE2C8BFB7025E9D1044D1FD4DA02FCF9C99DB8EDD679308D7DA020E195578E8349DD7064493F19B7461BB07D5D1437DFF622FEB9EDEFD8513E1F690909F14EE7C47B8FFDF145FC69EE7378F0F1FFC5C489A3E1A63841C8818A3D21FCF4A71F62DE1B6F2031BB0D2F2FF87F9836BA2F22A108FE327719EEFFC39F70E995E7E3B63BFE0B69C93EBCF4FC36BCFCDAD358F0CC3D48753BA538121DC3E88680DBEE5A8BDFCF5B8AE193EAB1F88D7B90AA47116836F0AB7BDEC3A277DFC313736FC4B051B9BC5C9C01A0AAA60ECFBCB408C386E5E1D2F3C6710A9F25E1655F53B6D515F74DD3EF685353047D4A97A57AB32F0C02761FCA89126CE79B3F1EE11EEFEF5F1830FE0D37222D684BB4426AE30B778416426BAB134F3E598ADB6E9D0BA7B113F39FBC05B3AF9904DD1543281A86C3E1844E6E8B26E0DEFBDFC7BD8FAD42AFBC303E5C7633D23C6E762BBCFAEE5A7CFBBBBF42C9C02C3CF2F0AD983076106B7050829EE5F0FF707129EEB8FB75ACDBDB88683400B7D18C58A4029E443FC64E29C6A38FFC0C03FA6660F39E18AEBAEE163CF2C00D987E7E21FB26D83943D6B374B1DCF58B7578F04F6FC2CCD984F7173F8C71FDFB62D7E630E6FC6431DE7E7F05A2AE20029A1F305BE172D6A377A68E39B77F0DDFFEFA6C0E1147C351E8DC90E038E95436178722E87FC3DA551F791A103811B2ECECEC3E91D7F079581E8BA55B83DA90517A6087AF137DAFD330F42FD45B5A185BC9EFFCB3C8A316E259F415417393034FCFDF891FFFF82998C62E3C33FF56B6A075972C86A1E29330D074288C071E7A1D2FBCB71111D4C0348EC049625F70A264CC14DCF97F3F40DFBE0069B65000906685B5C0E81BD96D6EF9F223F8E5438B70B0F21022E106A4A4B66119159938848F9B0A5CDE7C6F23EEFDFD3CBCF0EC2FD1BB97974BF5E98B34FD38E53B042C5BDE8C1FDDFD08728B02B8ED47D7E0BC5123D8FDF2DA6B7BF1C7C7DEC1C12387107147E1F685F1F853F7605889C6F7448162A1FECEAA1E8AA0BF500B56DDCCBF0681CF22C863FCAD831FB9ABBB3C86157ED4A59D89FF5F33E22FE6A7D8B1602B5A801F179CE7986D0C7EBF8685CF96E2CE3BE7C369ECC7A38FDD802BAE3C872B48A9EB7A5C2439AA73DAA15446108D072CCD72760388FE92AC1D1321B795F823FD5E0410455E3565F8D0ED50293D678970EE3455F6C9962AD4AF53A6B9F1BD5AA72E5B5621A7C44999609667A7EC0FDA7CA43824BF4427FD0ED21AA76B75BE5741CBA24558FCABCB98C5D1414265417F3197B9BAABCF8BC0B108BBBB646ABFBEABE063E7FB5496B43C7258015459266E719E4CC16C69013E5A5E8937DF580943AFC557FFF3028C1A9D0F27A50E32E6C47AF45FF17307E845AE9E203CD672A680A114DA67F17D2ADB96455224D6C5E99B36917E8D32EB45AD9E28B4D199DC39984954EEA0D27171FF16A7F2E75B27009953CE7E76A9A7CE06374B400BB150FA9EDA8A716E3B352DA6AA563B292B82FEBC4FB87ABD424021D02D049874AC2A4322C476521479EBD204D5496F248C83871A50DFD0C89D71FAE466223D2D998B90E84BC8A24BEB5B12A5CDA8E56BA40C97D01C8F0BF6536B29EA8C427D296D25EB5C3824DEC12A6CE28E38F27DE2A5E2FCA652EB5AEE0A567358EB333BD592C886C2A29E92E289F4E5A41FA4667F07DD676B108AA0BBB5B4D4C50A0185C0E745804947F6CFB408931951BA1CACD2392AAB8E46D0D8EA4720188423A22129C107978BB4A845B97D5C6CDFF2FF33CB0937050B0FC93657A20B91D52856882FB35383BA95C884782E55B784FC656D0AD3B0F53BA9A06AB1BE90CB8FB70A67E2B5FE716EB9BD9D962DDEC7B72AEFD72A529425AAB65385646645D09F77B5A9D72B041402DD4240BA1EF835B6AE25E25BA985C76E69917A174698D31D1D51D262112E002A9F1772FD92A42DD6E37A6FD9D6CAA2CB787B92388BC73F9ADDD6524489F8942A43E9F6B84F0B8BC5C8B62B16A95AAE2C59A26F31AD7474C8B275B16D08E21762FC72FF8937986D6F166B1390625788B4F25590B05B4B4A5DAC1050089C2A04EC56A1C54F52CB83F9D0F22DD3DF48F04AFA80454360E1CFA5E09AA062D249B12C524970A2B6306EA4C7CB38ADCF65239BD23222A0D277BAD6191365F72474257EA3B5AB2BB21BC5266BC07975E25F845337A85CDBF2894BBB9E7D3541D9FB50A4CCB12F9BC385B271ADDDDC66939BEFC0D6AC59A5D99DAA25A7DE4721A010E80E029D1DC547892DB59320D7FC50008D0369C2E4156DA6884885C6B3F8927E6DD638A1809E2455AB8EBA03C99216798885B6C85E3658154FB49122B785A4FD8E5A335D047FA3D23F22BA7CDB495C0A4FF338654E336F35CCC4EDDDEBEC98B1A54D16B4B8266E761F85ABBC11396E55A8D29D85A7AE550828048E8F4017041D77E712F1C89439E62049829C81C15FC227211AAD0A7FB395EE66D73517C26E22BD4E58E6F65D4058D144E4F1F7603F35B1BA4878B3979DF32D49D70CA7EA59422596E52FAD6C7AA5B8077A6FB2C385CE92BC81B85EB6A5DA4CA14ADA0EF8DE78AC3692B77E3E1309DAEEF3A1A41797D301B7DBD971C73BFE32515728041402FF4E042CEBD79EB570943B41FA82E3F9C1328FCDB2A83B11B4351C6159537A9DE4BECE046D25E5C52D70EB834519F96712B4B5894812B5B9D2E30148227FCEFAB0B9993B5CC78976425EE09804DD99B43BA58658EFC71D5502D4E5BC5361D4E798DBCFA76647471E4A188F521239603A75B85CE7815CC6000004E94944415422F5467D290414026738027677827D28C7FAFDA9186E9CA86DBEDFAE2C5AEBBACE9B4B7C679056BE752438D6755D59CC9F398E8E37284E17A2282614A69E8444D05DA67D9C143A274DD022995CEAFB46A370E85A4782EE0A68EB16ED7F3BA9DB562F520828041402A711013BC71E65DDCBE8A42DA84A69E0C19050B3FB421034A7B05851510E1E1CC782B6476F4F23AEEAAD15020A0185C0E745C0EE8EB6F2A53BFA6E452EA0D57FC022686A79757C35F413BFBB93B6A02D8226CB391AA1A86B0C4EF241BBA81D79A71B903F9FCE93D1890F595DA910500828048E8D40E7037E9CCE6C6E122E9C24EFBAD4FBA01FA941045BD0A7D04370D2044D2E0E2B48188B524B200DA6A933411FF5D5A90BB55A1C0A01858042E08B8C40572E6B994062EF21CB43B0C29A44D0E483FE4259D0D6ED517E24B51632AD5E6936F4ED22265FE44951F7A610500828043E0B017BBC526A2B0957475404098341EA0E7FEA4CE893B6A0594E85357785949F50FD13FFEDCA9571EA6E592D208580424021703A11E83242D8E103AD9E85C27A165CD8CE895F802C0EFBDD5A55971DCB788E05E0A9BBF9D33945EABD15020A81B317817683B2A369D935758B7EF3A7E3EB7358D0EDB763CF6F3F7E95CAE919C8E90047BDA742402170F621D031C5BA9DA03BD7F158FEE753E973EE8CF62925E8139B4A45D0278693BA4A21A010F8F721204AD33B7B0A3ADFCFE976DD9E1282FEF781A83E5921A0105008F45C041441F7DCB95523530828044E33025DF9034EA5557D1A085AB49339B623C3CA1A3CCDC8A9B7570828041402278DC089B9623BFAA56526C7497FE6D12F3CE5046D453315419FC259526FA5105008FC8B11E83E418B5E34C2403D555FA79CA04FD58DA9F75108280414025F7404CE4017C7171D52757F0A01858042E0CC404059D067C63CA9BB54082804CE420414419F8593AE86AC1050089C190828823E33E649DDA5424021701622A008FA2C9C743564858042E0CC404011F499314FEA2E15020A81B3100145D067E1A4AB212B0414026706028AA0CF8C795277A91050089C850828823E0B275D0D5921A01038331050047D66CC93BA4B858042E02C444011F45938E96AC80A0185C099818022E833639ED45D2A0414026721028AA0CFC249574356082804CE0C0414419F19F3A4EE5221A010380B1150047D164EBA1AB24240217066207062AAD467C658D45D2A0414020A811E858022E81E359D6A300A0185404F424011744F9A4D3516858042A04721A008BA474DA71A8C424021D093105004DD9366538D4521A010E851082882EE51D3A906A3105008F424041441F7A4D95463510828047A14028AA07BD474AAC1280414023D090145D03D6936D55814020A811E858022E81E359D6A300A0185404F424011744F9A4D3516858042A04721A008BA474DA71A8C424021D093105004DD9366538D4521A010E851082882EE51D3A906A3105008F424041441F7A4D95463510828047A14028AA07BD474AAC1280414023D090145D03D6936D55814020A811E858022E81E359D6A300A0185404F424011744F9A4D3516858042A04721A008BA474DA71A8C424021D093105004DD9366538D4521A010E851082882EE51D3A906A3105008F424041441F7A4D95463510828047A14028AA07BD474AAC1280414023D090145D03D6936D55814020A811E858022E81E359D6A300A0185404F424011744F9A4D3516858042A04721A008BA474DA71A8C424021D09310F8FF23866F9D43DF71C80000000049454E44AE426082 where `app_id` = '3'; -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000001680000012C0806000000EE2C29AF0000200049444154785EEC9D079C5D55B5FFBFA7DD3A3D99F44602015208044209BD77E945050151442C806097A20802A222584014B120A2285800A54887480D2D011292903E997EFBE9FFCFDA6726441F0804E6CF7DCF7D78F326CE9C7BEE9EDFDEF777D659FBB77ECB88E338461F1A018D80464023507708189AA0EB6E4EF48034021A018D80424013B45E081A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013B45E031A018D8046A04E11D0045DA713A387A511D00868043441EB35A011D0086804EA14014DD0753A317A581A018D80464013F4FBBE06A20D4660FECFD1C40118F2639358FD43FD0F75A87FC56FE30F30E43DE4F5C9B1E13BCA35E45DE3FFF1D37F7B9FB7F136FA148D8046E0BD454013F47B8BE7465CCDDF806E07E8327E9D1C893D3084A44D4245B296A2544BCE89C0D890A03778D9FA81987252A4C83DC420C654542C2F932F07B090DF878AA4E5F7C939F23EC9EFDFE0B6B1117FA77E89464023F04E11D004FD4E117BCFCF1F2468A1C1C108D950ECA948348650FD3826C6C526C014CA0C5210D844A998C04C5E997075C2D249BC9CD0B93148F87231F91AA467F9A7BC6D1242FFDB110FB0BFA6E8F77CCAF50535026F13014DD06F13A8A13B2D1C60C7C164C34018AC083326364A8A74E3389F30B5F0A69C62493C5CC0359AF0B114C70E5E61300696785945C2B1A17E67C93507C3E7E4F260F903046D4134C8D421982E18F29507D243F7E7EB2B6B0434026F8A8026E8F77D710C46B46F947F96DF952192EF199570888C84A755542D3F897DCC2850C90BE2086221FC60E07B04769AC84CA26023B655428338495FA87B80E4A785F1075326837858C2E4150C52A0BEF4A111D008FCFF464013F4FF6FC4DFE2FDC230C43024624EB6F26223C6340C8C38C68806C8D7A8425C82B08ADFF13251B99B5AB98857EAC7F0AAC45E8D38F0B05316A1E360A673D80D6D58B9E1E4868DC7CC8D80541361EC8093C63052C4511A0C87C1783E1888D4D386A449DE28B95D67C0E9E16804FE0F22A009FAFD9ED4C1DCEF00074651A4C8D954398B98CAC0D65E9600A3DC47D4F52ADE9A2788D63D49A9EB4508FAB08C88280C88A31033949C768429D700EC305039E89034AE91A718A60953C3C80F1B4BC3A8091863B7263F7C3266F348A23847480396D344484ABDB363A8985B1F1A018DC0FB808026E8F701F47F79CB7F536108410B39477140148658710D7A16515EF5288557EFC2292DC22C76908B2C9C284564F783E9134531711CAB2C87642C549E3A825400E6A038C4B2F14911192601167E240994765CBB914C5B3B4D5366929FB80D66CBE6608E05B30DCCD4C005DE6FA0F4FB6B04FEFB10D0043DD4733E40C02AD32CC49904C6AF6F0C0EFE3ED9FF4BD2C16105D308A8F6AE227EE667C48BEFA75A5E453E55250A4A18664C6CDAC4710AD337B125312DAC2EA9118C2465ADDECC10A107A130752C11B64FDA36318D10A20849A7D87E889D76F04C937ED294EC916447CDA169D29E348CDF1EA3653258D904A58154B51AE7C097FAB7DA5C1CC8670F9E2451BD21A391FFDE42A8F7065A6E197EF2E324476FC6E6FF549A6C280B4F06B2C16C2658C88B547E7E700CEBDF6B30F76F10ABBBD9EB874EE80CF587425FFFED22A009FAED22B5B1E70521B169E18B6CD9904D3DB08441D5669E45ECBAC48E8167191886956CFA155E2658F02B4AAFDC82535C8B2991B168998DC172924400AD78391095859DB0BEE4A985C836D074F8664C688A82DAC78C256911624542991646646318BEFA992444E47A5E6060A6F294AB21F98661A4A79E416AD37D30478E22B22C3C2B456040DA343055114D0AD3CD61C8DF942E13C7390CDF04A74CC5AA60D344EA3FAA40A24459226F3E28073421345198F9788212D9C8C2F0ECE4DC813F5171F6C0BD49FD42C613F9C9CDCBB408B1B1E2443D1ECBC6A810B1826E40CE2273605B4486BCC3EB47723B893620764DD91BBBFCF5EBDE1D029AA0DF1D7E6FFDEAA8426CA694144E6239474583E180CED9C2934D40F9792882E72EFC1577D333FF3784AB9FA4990AA6DA1814821E8825D7970F862A627442135322D881E8D11C609A44586728B54764083127A42E3C6E44F25B47A93984C015A70F1C9226B12C4BA54B8230A46435A8A8BA75CA7EB46C731C66EB568451161C53DD342202525E4A91999FEA23A0898C2FDB8A1E35CBC6B24C55ECF2464712C32651AF7AAA182468A55289098849FB6172EFB12D5C536E3349546CA9248D60E760ABD74518B19F44F918723B528AF1C1187E50286E1960C7A0EA77E4BD15C927CF04C9B9EB9118F8F78661FA5B4FB73E4323F05E22A009FABD44F30DAE1531A0634ECA4B92A819A90A148A31A889882DF4C9D556E1CDBF89D2333F2113AFC0C6C40B9A126DB3906F2C119D0A3531141927F4266A381521FECB7B0F3EBE273F3554914B42F2721591EBC5A2E0886D22D31BB85E720151900C2A494CD32488AA985983AE6A0E37338D615B1E42CB564761E436C30F53205C2DAA3EBB4A9FD107713B2D151B5345EE860843920DCF37386474892E6540B1B2BE983D926782E4161324791FD7B27007107088C8C9266818E2AB9B5F924491BF3308020C47FE3EA87A016B4A21BDE5805AAD86191BB4346618D19CA22D6F2BEC3286E029A3183C124579825C32701D3F0FF187445FFE4D11D0043DC48BA38A8F88D7A4025018323652B8A2671E785F3BF4716AAFD0FDC89504AFFC8936AF1B2B8808E5113D9D21886D4C15F186D8B150FA40443D10F18586857C25A492149A484428D1ADD0B114A74854AD32088AE0E40661131B52CE6D928EAAC8D6E1E0219B941241CB77216BC74C13D64A908AF1EC345D4116373F9D71DB1F4FC366BB833345E9A45DBB9B5EB9EDC42318563531C24EE228C66C1AAECAD4DF8CA0E5E7FE40917938A058B125BE97E29A50523F3276033B32A53627C964482125E08A4ADC046FA040D232C136A1BF1AB1724D3F5D5D3D148D0C5E6C2BE28E7C9FB0562663864C1AD5C68CA963189D91187C4047BEFE363758EA93DC5435410FF187445F5E13F4FBB506CAAA0E2FC68E3C1591858643F22F79D4F6B0FA1FA7F79EABA8753F4226584B4E541C4136F1CEB05C0243E82AC9F73A22A393348563E38742D5268619128631860A55D34ACD11A90D3A79860F317D1FDBB6310D4BA52C06B622550AC3B6240FFDAF65DEF27321E6A4D45C883E49A1382A4362E21B2615DBA1D78496899368D9E51CAC86B94456037D56338E67D1E02EA1E7D95F12B56E41FBB4C3C018D864FCF749184C052337A48850A2D95852400656682B828E14410B491A547CE8F43D9E5DEBF37C671F4B7A3B71BA3AB16A1E516C60DA0E2DAD6D4C9A3899D832F13D8FC84E13C406BEEF13043E665003AF825FEEA3ADC1E1C85D67322CE39092E8DBAB924E0F96B6DBEA7631589DF97EAD1FFDBEFFDD08E8087A88E7BF22358012C586C9EE96EC9F49CAD809CB98D545C4777D8EEAD2C7309C066A918F617B2AF1614716569023B064D3CBC58E23953B15EEAC4AAA3593C38B6C2CAF44CA9434888369E7F1FD8144886C2A9A81EC81110501B1283654EC1CE208C94BEE59D20BB14160BC7929B72B7B6B31A4A2885418A9A219F9538C6C867EDFA533DBC6C4D99F2233F563E08C240ED7E23D750EAF2CF8339BEDF753329B1CA16E1C6F1A42AB1B4472334912E426516CABF7905F952DE870031E78751D0F2D5ECAF26295AA6F92326C9AD30D8C965CB4EF83E560D859369BBA05B6ED100601EA2271401884F841A06E50815FC3AB14C85A21C5EEB58CCF5B1C7DC05C5A7319B26A3F2048248A0369284DD043FC01D197FF8F0868821EE205228FE1A928C6904D40C3A46A49CA4136BF5EA072DFD5444B6F24E5D788A26178418CE954C1ACA868D5089B084D5F292DAC38C08A45C9E110DA794A519AC06A50A9904CA6192BD58A69B7916F1A496C3989EAC30CE82FF711861E51B988DFB38E7454C2F27AC8DA3572764820AA87FF804110A7898D00CBA860A9AA46E15283D0CB63D24235D745251E8D39F24086EFF6417A1FFF13E6B2AB89323E8D737E4E7AC68960BF7992201AD8AC3394AA25268A4CB5B958366079C1E78E97D7F1F49A0E3ABD2A664396967C9E49D906C60606A9EE7EAA664477A58C936F61C4E8499896A433845E2395D2303C97300AF18210370C89E208BF5626F22A44418DA8D0C3D471ED1CB3FF76349A92AC499E5234410FF107435FFE6D21A009FA6DC1B4F127092F5BA22E101DB291A16A88AB4699EA73D750B9FF0A22CB25322372618546212B5F741E0E9E15E1DB2E719C563968118D492ED98F1C7CBB9954DB7872E337C398BA1F8C98464C33C42DC080EC4E4E3622BCB08869C5D8923E08CAE0F7102F9D4FD7922759BDF4794646AFD064F4AFFF0313099A1C09A9CA76A6DC2C42234520D5889E472E97C688AA385640548E882D9F6A9BC1921E8BB14C6444AE9352A544E680DFE06C7E9492B2BD590EDA55B78788B44800256A361D7A31B8F7D55EFEF6E4F314CCB1F4167CB6DE6C13A64F4C93F563CAAB17535EFB0AD54227DD7186D4B0B14CDC743A8693A3E28610C6C4810F61007E481446548318378A28552A388E855B2B53AB1494CB48B5671DC71DB43B3B6D3E5CF63CD50D31917724E3FE3799F4C62F06FD4A8DC03B444013F43B04EC1D9F2E398EB48BAB76B87238D51A66E71DACFDFBD768AD2CA6266A07CBC20E51795E4947D896ADF2AEC20C69D756F9D56A36458FD380356A3A23A71F8A3D722E38139562212140295C193041DA206095775DEF72A7A254B959C8974BECD7F04BCFD2FDC25D94163DC6B0D26B34FA3DD84A6F9DC6B7724471486CD4880C0FCBC9409855496171D933AD2A66E8E0C421554BF2E152729EC78C7D1CCBC6DBF532F25B9FFAA66E7842CDC518B246881DF4AA829897AA297E316F2DCB4A065E18323263307DD26886A54D1AE22AB5EE7574AC5C467F4F37C54A9995AEC30EBBEF8B9DCE12C6065128517844E07B891A2584208CA8F91EBE2F698E80AA5755F968CFAF91AD54E82D75AB315CFDD913C949597CCAC5352CB2A2134FEE52FAD008BC2F0868821E6AD86B31B11D50B3A508C5C02E2FA3FBAF5F22DDFD0F32411FAE292233494C67955CCEB1255FEA4AA11F969927E540C173885A67D1BCCDD1D89BEE83911E0D664EE568456026052E1B7BC4A10B511F466D25E12BF7D0F7C29DF83D0BC9DA45D27688E5054AEA66D98D2AAF1B9A3515F12B15482CF1664026F4F18D3CA9B88C6B99B8A64D5E32E9BB7F8BC6AD3EF11FED4A950E3AF6F1629305FD01373CF8321DC670A2D864CAC856B61C97A641D2426E09A3D24FC7F2A574AC598B17982C5AB6921DF63F8A86E1A3A856ABEB25824AC32D635539E798308CF03C57917210FA54DD2ABE10B45BC3ECEFA7DF2FE396FBF8C169273179440341AA42D548D1103803D6AE1B8BAE7E9D46E0DD21A009FADDE1F796AF8EE3226E90C7364C6C7A293FFB537AFFF913F2B5D534671C2A7E11C310299DA572CC86E9A9220DCC0C419467B5A825A6CCA57DD6C7309AF7062347E018848E743FE9C4A1118BDC5B8EE34D4F9024B9A4046CB923B8102E23E87898CE7FFE1277D5938C355CE5F911BBB2D127E61E153C3B4E0A41E2760CA346362AE19327139555C9B86FD8E462F076B984FCEC33FE835DA9E8FF8A046686793D26D73FB20C3FDB465C2BB3D5F836A60CCF10F852961ED2608554FBBA58B6F8253A3ABAE8EC2B91CA37337BF783084D07D775955A45D41A42CC8A9C6563D04FC8DA97083A10920E70DD1ABEEFE2BA1ED4427AAA45ECB8C429BB6CCB11BBCD2430AB44A4C878A9C4296AE3EF7F1B3F2FFA951A0155C025E1863E860C81026B71E21164AA0646F50956DC713A4D95974949E01A9818B6E8A363EC50F2CCBE08CE88D336453F03A9D118D38FA275FB23309CF110B5135AB6D2FF4AD189657A3858EABF8D3E0211FD5954A48C5BAE19C764C36E2C6F19FEE247E87BEC368CE232325681B459C3080342C32690221649D39A01E92089A0F36119DF92021C9B4C18E1EF7C31B9399F4455B3BCE12125D81516F6C4FC685E273D8DE3092A7DECBA493313F2914A9D7891A3A477A9D865DD9A15BCB66431ABD675B3BCA39B7D0F3E8C6CF36855D62D690DCF4BD21AEA2B0893CD41D757A90D3FF054DA43A477AE572390EF6E0DD7B5E8AF54C0ED65FF6D26F1E963F7C531A4443D85E53A09394BD58C3E3402EF03029AA08718F47588B67904F96A48E703E7C1CAABC9FB15EC3043208FD0D219258E71A4A8431CEC6CA8D8397A83E18C9CBE37E99D2EC0488D549D4F446E97E494C5BC3FADD4145203F26E36B1C2B89434012083D4EF49F09E51AAB70844375D5D4E75D91D2C7CE0C78CB6BB690C639C5072D03522A7A8226609BEC37880A0C5772436C90511A51DBF4ECBCE9F8178406627B1804AEA26E5DA52C8B2DC35F9F9032FB136339E322673C6659894AA62472155439E0E0CCCC8C50A5DD6AE5CC6AB4B97B1AEAF48AAA99DAD77DA45798728EDB7E49DA518258AD647D12A820E937CB490B7EFB94AD9512A16943DAB44D18532940B559CD8E3A07DB6E1848366D31887E4440FEEDB0939BF8BFBDF102F2F7DF9FFE30868821EE209EEA0C8B0D8C1EA5F46FF5FCFC1E8BF8B9454048ACD5C9C2332C5AF593C3512D7359198F53923C94DDA93D65D4E84DCDC01CB4F614D958F48084E0CF6A58A43746FEF6213ABA61AC5425AD22B322E55E29852558912210B91DA6107E1DA27E879E4E758EB1EA521EEC18A42E2D8A6E648955FA022E85C5826104B53C32255F528CFFD068D73CF5111B52A7E5187E8A8436CD3A4EAC7FC74DE7216971D4CC7617CABC316C30C1AC2329ED140C16A221549297905337459B17C294B972DE7B5B53D6CBDD3EE348F184B184544D1EB298DD7095A0838C00F035CC93FBB1EBE5BC3AB5655AEBF522AE2B92EA55209AB6AF1DC530BD86CBBA95CFCF59398D694A159CC9F020F33258D0C742DE1107F4CF4E5DF04014DD043BC34BAC388B6682DD1E23FD27DDF0FC806CBB00C571916394146953227A64786F2692E1839DCE1B318BBF799307C17B01A3054A9B4549C0C729C2A3101439C3C32AA13CAC61E7285A410458C9406FA104ACA404AA4B12805D0660698DE2AE275F752F8EBD7C8066B958F4518B6E1D91E4E5C2518CC414B8AC34E61D75CBA677F95BE9967D2EDA5A8945D82813444536303B94C8A75DD7D3CB046CAB9338CCA54983E26472A92DC8F94AFA7094562A8B4772E86EFB262E91256AC5CCBAAAE02FB1E7A0C454FAC557DC26883D44618AE4F75483E3A21E824A511BA3545D441AD4AB95854117558EAE4F13B1EC5AD343276EE0EECB8D7565CFEF1BD688F6322AB8469669421933E3402EF07029AA08718752F10F25BC4DABF9D85B9EC09B212999915ECB8423A100F0B2166E97C22CE730EFDF63086EF7A32CEF493A8991395D19068A00D894213433A75C44A49213F5749808DFE2BA47023B966E24E9774A54D5C3BD4FF8F1CACB086D1FB086BEEB88C5CDF7CB2D26E4BDCEBE4C660888AC3C31B54713892233749F901CF8C3C99A7C77D9A6E63C440377149C9C835937CB16CEA15EC56ECB0CCACD1166D398B7228CE1819B2A14FB3DF4FD5492B8587197AAC5EF61ACB57AC21951FC6265B6E4BC937949953147BEB551B927F1ECC450B41BB818FEB5609A5D4BB56C5AF56085D0FB752A1A921CFC78FD89160653F1FFAF01574B78C60D20E53B9FAACA3D877462B8155C02483AD9BE66EF4FAD22F7C770868827E77F8BDE5ABDD2826E53D48CF0D1FA1A1DC8B6B270E72E9302215F9D46C715513E3E31A51630BBD4DFB31F6039FC3CF8CC6609C4A0D0CAAE806C97920539018FCBF6B331FB11D5296F889DC6FE0500EC9A29BAE1588BB9EE2B5BB2F2157594873EC4A2B44224965381E8D7191C88DA9645AF1A59CDC949B06447623CBDAF664C1265FA0373F15DB7112F37E4374C989C2A252A9502C5598D0DECCE89694DAC00BADBC327FCA4401B92091ED05525549CCAA956B78E9A557D974F3193839A99E94C29432612C3E1BC1FA1CB4283A06893A705DBCD0A51454A8887AA3E8920B628C9E6E8ED86B670E993B8BAE5A3F071E740E1DCB9A69D9762BB6D9A5811F7DF9305A6D298D076B30C53190E99022F9243124B735D14A6FFC0DF22D17903EE1BF1A014DD0433CFD4AB0B5F80704B79D473A86422A20B242D27E06CB2852336C52A18D6D54286647D3B4EFB5589BEC8167964979ED28767EDF9EB06328AD61C93DD763F90B68307AB084DC8C2642CBC1B3C50BBA82D9329E970A79DC3843CE2F92C6A3600DC31B3193EAD83DA8DA6D894F7352D74D245DC82D33C91D7B9248917F27136198B2513978DB313085F0E5B5A6C5BACE1E9E7CEA59B6DB6127622996C1A216D692F26D65869490F486042D567725B74839AEA8681AD780B5BD2C7FF8212E39F774F6DF691BEE58F414279F7C3EED85D9AC34B36C7AEC78BEF6D97D3878D30949EC6C2637B1D7B3E8898B75520024392A4DD043FC31FAAFBDBC26E8219EFA302EB2E68EB3697FE9B7A48D1405BBAAEC40337E86D8AC20042E5239276550C86D43FB51371264C712DA651CBF09D3B4DF5715414D52DD619954AA8CE1F5822992B90C912939DA8020CEB1B0A3C693AF1509429356CB6544631A2FDD4A97D14ACA3054235BE9B128472E9DC2F5AA84515248E285265557ACF50DD219B9B6A9D41D83E2CF284A4CF8E5E7A5729567E63FC7EC393B10063141244D053CC268809C072A0507095ABE7BAE45AD5A268C2A78E5327625A467F16B742F7A818BBEF469F6DB7D0BE2E63C3FBAEE41BE75DE2F08D2CD6466B6B1CFA15B72D5A78F2563BEDE306B60272069E8B27E3FE05D3FC20CF10AD497FFDF8C8026E8219EBDD87B9595B79EC9A8D5F711D5C06D9037F4497B3942DB25B084010D6A51134D333E4666C7F3F033F2985F2225D5851241BF8F2202B14B95E856542669897EC57CD936A98A0FB315F3FCF21E5E5C5924C80D57C31C9D8B69B47C8A52F3926BC5502E7A5280237914D127BBC9E65CE4E3D66A74556332F95672D92CB69552865242CE83D23931D3576E1D618C1F84546B1ED95C23B59A545BC6F89E90AF689D139216D2176256C5299E47B12AFBA93E71B11BBB5265C1A34FD1101B4C1AD3CCD147EEC32E7B4CA16B89C78597FE91BB1F7F062B34E9B52CB63E72677EFAF50F33A525B53E461E68B49E78440FF644D086D143FC09FAEFBEBC26E8219EFFA8FC289DB77E9EB6EE67708B31518BA93A753B5E5E55E489BD686046F4C41318BBEF95A4C61D4C352D1B8635B2EAE15F246AEFDF23B41B56B10D034B3C520351929804B6C8014D5E59D3C173AB622A66BBEAABD8D66C62577DF266A848DDB3C4093BE983225D606AB5AAEA6C1204892EB9BFD04FC3E84DC8340E53F969E5452D0D051441CBBE62B2112AA991409A184411E9548652A9ACFEB7747CF1DD324198E49C85A4E5BA42D083FFAEB8013923A2B0FC15B69B3089C6D0815A8DB11386B1ED4ED3C8B5D95CF4F1ABF9D3DF5EA1D00C1937C6B3463172CF599C78DC367CFE90E9A454383FA8E14E3C5F550E5AF60706FE1BE265A42FFF5F8A8026E8219EF868D5AF597DDB5719E5AEC48F5B70D32EA9A84CCA6FA06C5BD8D4706D9FDEDC6C261DFA4BACE62DA9490F5823549D3E84A0DFBF1C87E45A25041525604A75EF96EE263513D6563D1E79612985D4487C334B3E6F93B2A5E046CA5D7C0CC9338BD9536411F921AEEF532C970922E82DF4D35F28326DC60C2AA2B9B612937C395F5A300A1FAEFF92CACA810EE4A2FE50D61DAA1825F1790E4321DE55BD080000200049444154E39A3241FA778216A2762B2582FE0E76983A815DB7D8927CE89016EFE85444BE2D85D3DAC2DFAE798C6F5EFC0BFA1A62CC8A4F1CB4616F3191D9074EE5C6730EA04D3485D2AA4534E8030D0D03A5479799492B858D3E340243818026E8A14075836B46CF7F83BEFBAFA4D9EBA3660CC34B55C945652C2F4F299D22E57954532E85117BB2C9076E2448B7ABEE2292937DBDA7C7FB57CAE60EC8ED44CC278794CA14E2987B5F5C41D56C57A4D8D2E09092CDBCD057A90CE9112EFED58E1161F91695924F7FA9422D86FE728D8EDE025B6F3B87AA747B71C46F3AD98293FF249511C762C4A45ABA246E7AB1A83EC49323528D072229E556041D10E02B0BD44172FEF7083A5DAB61D77AF1BA5772FC2187B0C98809105A34B6E6F9F39DB7F1C39FDC42D06B31AE7D1316AE598DE742C64FE135E798FAA1FDB9E673BB336D586EA0196DD21F328EDD449F6DC836A56C23BE6FBBB843BC7AF5E5DF6F0434410FF10CC40F9C4AED859B49552B54ACE178A9320D6105DBCBD39FCED1E48944AD4834FD585AE65E8DE734131B2EA938A52A0C131DDDFB47D0E267AD2AB495877D8C6B782C2AF632EFA502E437C5F60D866563A59596EEE19EE1109942E711A657866A91427F91AA1FD15BF559B064057B1D7C206EE410DB268ED2610F74391FC83DC7D2BB3116A296AAC34011B444CB12398BCF731C84049E38D305F87144D57B3DA521043DF8251174BB6BB2D9A856AAA5B5EC3C67362B5E5DC315DFFA3E975DFE4D7EF7BBDF73D743CF1278FD3CF5E0EFB8E0BC9BB8FDC127C9BB25CCB441C3078FE198C3B763BB4D1A19D390A3BD2145168346D1ADCBE6A5EA0A2E8F3BEFDFFC0CF1F2D5977F9F11D0043DC41310FD6137AA2BE661CB0696DD8C6FD5C84435CC304BD1C99097CEDA76157BE77371B6389B309527107F641CA5145012DCA12C35DEC02A2B89643738067F27DDA8445961C5D4CC80BB9E5F40D91E456F254F6B730627AE25852D86494D34CB8E18FA07F8A55EE2BE6E2AC532A19DE585A5CBD9FD80BDE92D394AEB9CCE1818D245469A19AC4F6B88478704CB89902D88C45F235051B318EF47814F24042D8A0D71AE8B436A9277F6036A92D27003DC9A47E805940B450E9BBD3DF7DD761B15AF9B5D76DD96BBEF7880452F74B2D30EDB73F229FB73CE17CF63D6F65B72D1E7CFE2E9792F71DEB7AFE46B679FC1CC19DB70F2B57F2437A91DAFDAADBCB3278F1DC65EDBCE60C7A923D87C7833B6480E6D0F4BFA460696F2F70F4D497E0438327F52262AD98FF76F0B618857B7BEFC5023A0097A88118E7F369CAAF83D88A7853426150F0B439217524E6DE39921D9D0247DF08F31A61CAFFC306A460AD330A591F6EBDE424335CE0DBD0C935EB1EA585FB128FF436E14428C8EC3B26AC47D2FAC21CC657132160DB1386D48DF154735B89511AB32F05A894A7F2F6EB11B29D659DE5DA079DC44468CDF3469E725267142FA7279152DBF3E102167F9928D3F4971885E7A50A1B1A16B9D1074E4B9CAEBB926796ECFC7972792BE0A513564C133CFF38DCF1CCF9F6EFA0B857289033F30975B6FB983054FF533766433D75C7F2AB1EF93B61B696EC850ADF531624C3B76B6911FFCF82EBE77F5ED58ADA3A8A52D72EDAD984D368DAD29724695E9E3DB39F9C8BD9939B99946D5934195E7E0A53C3C33201BA7B12B29B135D11990A15ABBFF05D7D5043DC4935CFB512BA1E7629BB1EAE9A7A2C158BC2684A0A5896C444611F4B598538E53ADB15C23A5941BFFDF09FADFB148D2C04AC120BDFD827486FB5F5CCD0AD722C8E6B09D889C9485ABBD3B91039AEAC61249245BECA1DCDF8BE74397E897172EE2C80F9F841B1BCA8744352710125679E68177D9E0FBA0339D48E8FE8785E880ADA8A43284A445572D92BAA0E6614411B5DE121DCB5E63DEFD0F72E01E5B70EEA7BFC4D225FD4CD93CC3C9277D894257C0F8B12D5CFD834FA972F3AE354516BDFC0A63C78D64CE0E5B139936D7DF702BDFBFEA665A83566CF125C9655953ABD23A7238C5BCCDC87123C935E5D869F6243E7BC26E8C4CC50CB3930EE8A24591C839305C641BD854372E7D6804DE39029AA0DF3966EFE81585AB5A245656DDA22DF5D83EF0E8AEF29626AE255E1616A983AFC19CF24188C5D722A388CE198C2A8730C5A1A871BD822CE90F9884D0C97755EC2C79E228A06238FCE9D105782D63F01D090D4332B6C8E212273E6983E898E0578A14BBBBA895FA2984799E7C6131071E7918919D52EDBBAC7843828E09C59F44DE6B20921E8C9E93CE2852889244D0834E75838528CA6B43CC90DC9A4A4184529052E8A7D93229AC5EC5734F3EC175D79DCFD2970BFCF9B657B8FFA17F72F229473263FA445A1A0C5A9A436EFFDBDFC86787B3E76E07D0B16625B7FEE1377CFF47DFC049A579F6D9153493E2FC2F7C8D934EFD149F3DE7AB5C7AF5B59C7FC57759532A936A6A62ECA6DBD0D21EF295730F65C7F16DB47806D2D230CEC414EC1ED2E4C459E41DAD197DB2466010014DD043BC160A570FC712B20BC5C14ED201C9111A426992E290C7610BFBE06BB0A61C9FB47F32322A82960D3495E4186A825E5F78A1C4C76A335015331B067E9CE83764B4EB2A2177CD5F8C317C3C9EDC60421FC7B155946DC621761CA9AAC15AB18F425727AE5B664DA5818E52C8DEFBCFA5588E483989E9937436970E3242CE83C4FC3A414B9BAAA4E824A9381C685FA53AA3245AE7A44B8A4F59957657A056C1AE9508FBBB39E9880F302C6D33BAB51133DFCBEAD53E07EFFB151A1B263179B3164E3E651F86B75AF475F7F2CC8BCFB3EBAE0770EFDFFFC9E1871C4426E3F2D4530FF1E1138EE495975FA2C7ACB064D93226B68CA53DD54AA9ABC2AAD55D94FD98C52B56F29D9F3DC4F0995B307C6623271DB907A7EEBE15CD527B640694CC126933AFF2D1FAD0086C0C029AA03706B577F09AE0FAC994CB05CCC0252D41B37430117296AA3C89A08D80BCA4340EF801C6E4E314998BAE5808DA56E5D1923A18BA52C2F539E7C1D26531E9B74DD5DB45DE5D5A5B497C2CFF5ED553E4F9D5FD54446962DAA4CD5099F39B86A1BA86DBD2F3AF56A1DCD7435F7727A665F1F7C797B0FB8187337C780B962D291EC5FF6AD3D11CCC418B3A43EC3D37F8BE3EE71C4B014A42C8F225E725C52E89E74625F0A889C7B35B26EAEB66C72D3767E7ADA733AEB5816A7F3FF9F610C76EE513A75DC1A8F6ADB9E3CE5BD8620B87AF7CF9533CFFD44BA41B1BF9E7932F72E75F1E61FC98F1FCE52F5770C9A55770E10567D2BD76152F8B4DAA6973DF1FFE42F7E2251CBEEF41D8864DD3F0761E7FEA69FEF8BBF90423A7F25CE8921F9BE6CC0FEFC1E907CC62982853220BC39466BA43377FEF6029EA53FF1722A0097A88272DFEE31CFA562C53C51B29A9A88BBC817E2289839CA822F262283AF71252DB9EAE36097D33A7521CA225561280219471254D5B8D0183A224CD508DC1B7A018C5ACEAF129F417F0BD12C520A6E234E25A0D4A98908983646350F55B0CB0A5CF5FA5CCAA55AB946ED9F502E62F5ECB11C71EA3521BB69D5404268E49E2B9A11C945409F8E0C6A0BCFF863D054562E70D74E81EEC37385829A80A51028F6AA91FDBF318DBD8C8DCAD66B2F099C7297675B2E71EBBB0DB2ED329572B546B16E5628A334EFB1A1327D99CF0E18358FAF26A52D91C2B56F7F0DB9B6E67CE9C6DF9F6773EC96DB7DDCE2E3B6E4DE4D5F8F54D0FB272450F871F7200B5723F861571EB5F6EE598134E20D7DA4A5BD5E1873FFB33373FB914B3BD992DE64EE0DC53F666FF2D273242B091FBAB4E410FF1A7ECFFEEE535410FF1DCC6F71F40CFFC674899014EEC6346BE4A1724F95DE980EDA992EE759B7F9E31FB7D4DA5380245D0D2EA49F46D434DD072133030C2C454429C2F0A112CEB2BF15A6F0FB5B85911B86DD6A8192655D2F846063B0EC906D2E15B3A8E8865AA8F11B84AB1B262E56A0C3BCDF30B17B3CD0E7319397224966DAAAABF58FA184A45626C27052952711825043D48CE83EDAB948A230A14410FA634E4BB44D02AFF2CB6A241153C0F2A35361F3B9E7FDC71277BEE3297FEEE6E5E7AE515F6DB792E471CB51D815160D99290A71E5BC5EEBB6F45ADBC825A31E437BFF91D677CEAB3445696C99B3573F58FAE67FBEDB660D309E369691CC66B0BD788768ED809C8B7E6E92DF662DA0E37FDFE0FEA61E894A38FE08B675FC0C2650195FC1882116DCCDC6132577DE33866B66769B2920A497D68043606014DD01B83DA3B784DFCE429743DF4371ACC72D273500C2A25571B47CAA8DF97926EC364C5B88F30E5F02B54FFBED01215479438A629B3A477F1011F308D1E4C65AC57650CDC24549188BA59386A7B704D6F8D97D67651304C3CC7A212E6712C87C02F82E3E0463691E1908A4352614D751F17FDB3349335028FFEEE2ECAE52A1D7D551E7DF2394E3BED23A452367D85122D2D0D542A35957B0FD713B42FDD739583DD86F2BA6453302408939CF3A0D786AFB4CE49614A4D9425A502D5DE6E0ED9772FAEBCECBB9CF5E9CFF3D0FD8F512CF671C209C770CBCF7FCBD7BE7C3C86B994575F2971E5F7FEC2F84DC6B3EDAC49ECB0F5D674AE5EC71F6FFB2B63264EA4B7D8CD9C1D66B1CB6EDB532954F8D5F53772E2878F401CF59C6C23C56A05D72B6385214D99567AD7F443D624A886F8FD39CE38F76A9607CDB46FB50973E636F3EDAF1EC1845C9AACAA0B95BCCE7B2B881EB40891F9535D1E076492A249970D5CC348BAAFDB91DC24D4CE873A49D443CA1F45B54C9317CB1A88555B08A98D9453A579B03CDD88DA48CE16D9A5DC5C4571230D24D475A42069A0964AF59834C44346AE23FE2B725E2649676D38C077B194DFC1C7EEFFCCA99AA087782AA38E5FD3FB876FD15A5B4864C714CC16522164C22A8101A9D8C24DC3E2CC66CCFCF0AFC19CA68C8762A32A52006506FF6EF87950D89CE4BC078F444DA2B2CB9272301C4AB1C1D29E2A4BBB0B54CC349E6D2AFDB2944527FECCF201947B454232C9E74C7E1F62588ECA2D4B045D5CB79AEEAE4ED6167C5E5CD9C7891F3C5A59DA27A9147515E54297E49CE51922911E6E98D6D83082F6A46D95E711490E5A0A5324A551A9A8CDC352B54CBACF65E2F01C3BEEB025975F792D3BEF79223FFCF1EF69CC44CC99318CD1E336A1DD89F8C8BE5B53299578F0A52EBEF9E31B69C9DAFCE0C2CF31BCA19954DAA416F4629A0123478F52E5E8E96C036BD6AEA3211392B64772EB1F9FE5A73FFF2D3BED3699CF9E792CA15BE5E17F3C855BE9639B6DE772D6B997522A88F470187D61992D769BC60127EDC7A70E9A46ABDCCCA4DFA33DD03CF73D5A7312C18B8795638AD4519E4EA41FA4A86EE4A6EF43E0D26F6769940638194B7590376B3115DB206D4658F2A8D49803B3A6DAA7B94606978CDAD24CF91E666C52B60CD281811D9AF85903695BDC105631BC102FDD84257BCA86EC8A4A814E96A270B7DDA9DABA398C262B9AF728501E2C9695E4E4F5F1F611D004FDF6B1DAA833E3EEBFD0F5878B18567C8AC88928182DA4C5BA33128236484526153BA2BB7D3A630EF81E4EC32E4AAB26E5DEC48326421BF5D6FFF2A20DEB5112AA566A5DA425576859BCBCA29B1505173F9DA71C0B61259B849661FDC74774B113352C5B79339B7E8DAE95CBE8EFE96675BFCFEA121C73E4C16A4350D1F9808C6E43399DCA3F8B5A63E06B707370705350BEAB085A1AC0FA89539DA43CA41B4B10F8581DCBF8D89147B3AEA39F071E7D9A89336772D9F7AFA3219561EF1DE6926E4A31A9CD64DF591388A390627A34279F7901DBCF9EC5974FFF20EB962F66930993C9E5B2E4F216CFBCF018DB6C339347E73DCDBC47E7F3C9D33F486BE36876D8E144EC741385EA127EF1CBCB18D6DC44B53FA26BDD6A868D18C7E5DFF915CF3EB38A6AD1C268C8100F7398B2EB747E7CD10799D29C262FC657E67BABE6902D8A820569A34A26EC5237749FE154312875C6F42F5988E95718D5388678935184AD262D22018C3D0AF214E440D417910F2DACB80AE24298CE40569E7044C79D6C116484D8A54182A16267AC4872F1D2BDBD819A111019EB543A2EE8CC11ACAC52EE5F43DB84E1348C9F94E4DFD58DDD2008636C5B87D0EFE4D3AC09FA9DA0B531E7961E63CDEFCF6758CF0398A98062DCA83A55A7A31ABE696187E0DA117D8D9318BED3E7C94C3916EC4662533E0A495EF8DD2CE97F2914FC5796567F4D1178656D81D5BD253C2B4B3934A945F2182CDD4C447632687C9CFCF11B56FCA91F44E2F56C2711B45FA5F3B5457476ACA5BB0ABD6196C30ED95FA52FDE8CA06331F35776A2AF47D183E90CF5B3815CB31F0454C567C34D0A572AD59AF2953E785A1BB3274CA129D3CE074FFA1C97FDE43CFE70F7A374ACECE7D8433EC4F537FC80D33F7220E31A22D6ADEDE4BA5BEE61B7438FE59E3BEF62A71913B9FDD65F336AE4142EBFF43BDC7CF3EF39E4B0AD99386524AB96AEA3BFCB66CAA64DA4528D9CFE89AFF3D83F9F66ECF83C37DEFC03DC7285790F3F4357C75AF6DEFF103A3A03CE39EBDB84B51CFD55172F6F307597AD39FA986D38FDC839640397BC74087F0F8F582259B5C79BC693DCBE1FF3F83FEEA56BF1F364FA97329A1EAC7C1F5DC50CE5DC6638338F658FBD6790B65FA537DC8CBB6FBA95CCCA05D88198F405A46217DBB1E891272A274DCB88E14C9BB60D13B6DA92C84C618719B51C02A9963422D25E86FE5AC4F3F39EA6F8FC0334F57591732AD83997FE4244DADA1263EB6DD966FF9DB02C1BCB929E94EF2100FF0597D2043DD493EC2D62D9EFCE63F8BABF92725CCA718E7414A90F836B8ADF863C2342879FA369C671B4ED750E5813558BA7A479AB52196FF42885E6E51AEA4BF1A48445EB1314BCD8EFB2704D0F66A691A21B53F5C573437ABCC8065E442C8FCF1B3443FC57825665808AA0C5ABD9F26BF4AC7C9555AF2DA314A5E80B331C74D001181B44CE09A7BF2EAB53DE1A1B94720F46D212354B9E9940BC365C65575A1583A420A6542C12F8210D992CC76F3F9ECD86359273F23CF0E87CAEBDF9779CF089537869C1329E78783E9B4E68E48B9F3E816ACF3AEEFDC7032CEF0DF8F417CEE6F00F9C88E397B9E27B1771CFBD4F73C4078EE54B5FB9844AED65BEF08593D86EE6F65C72DEB57CF582D3952F75B968B368D112468D69A6B9D5564F162B96AFA3D8DB4FB11A71DE85DF27F41AC1CB91CBB75124C0CD5BEC7CC80CAEBCF82426A42DF2EFE64EFB062BC02B7790B22CBC541BDD86C9E2BB1E24F7F8B54C0856109B06153214320D44568506B3CAC3A55D69DF692F0ED87B1AE57233F32E3F9E1D534F53A285A23146A5DE6CBF4A94CD129A1E4EB08E55CE4CFAC7EFC95EC77D1447FCC009A8A4C5AA0058DDC17DB7DCC288C22236A9BE4CDAEE635593C5BA544C5BE833A650E581CC91D4C6EDC071C71F481498A4DFDB7BD4467F2EFEB7BC5013F450CF94DF85FBCC0D541EB91C3BEE51CD5453518013B9D4A48388FCDBB4107BFEB07D366D879D4F9CDE8EC8CC100415D229A9D8DB789D5642D0492357214A21FB2836D5E36B6F31E29F6B7B293B692A5E8C1BC8D691E430939CB36C144562AFF91F884572C8A2C63064C3A856A47BE5ABAC5BB59CEE52C46B3D2E279E7C8222F14AA54A63630ECF4B8CF5D713759844C4EB9BBE4A7F412FF9999C170F9A20051E65D7558649B2795AECEAE599C79F20DDB7861F5D760E5B4D1F492693E7F1675FE3C63F3E496FDF5A76DB692A7B6DBB3993C78C52B73891D3C5E94632F961F4F616F0AB2E66D6E0873FFE0D8F3EB2889AF872640B7CF90B1FE3E843F6E5739FBA880BBEFE6952D92C5E39C27152144B3D9856CCFC679FE385175EE188838FC28D2C3EF9D92F512AC4185507C7CAB1A6BF8F389F62FA213BF1D1930EE288EDC730ECBD26E8C8559BC9FD4686754B9752BAE92B6C5B7A82523C8AC78CDD78AC6F04A9C060845D60F3D1060FF64C259E309CB33FB13D950E83BE5F7F8871C6632C6E9CCD7D9D9B60D348BEDC4B4326C5844697A9F1227A228FC5B93DE96BD999233E74004EDAA54A96B8EA73E7955F6686F90C2D6E0706395E0B46F38CB719DD8C6462762D33332FF0626E1F9E586D71E1859F259349E1BCC7180CF5C7F7FDBEBE26E8219E019F107BF59DF4DD7A168D6617653722A3AAEE3CCAB62820E45131C2B13374DB6D0C3FF6228CD6C3098D1C50C65666F642D21B77BC4ED0D180FEDAC08B6DA5695EB0A48B0E334D119BB21712881D9BE49C55501FAA6A3FE99FF856872ADF362D2CAF42EFAAC5AC5DB694AE72C0AB9D654E3AE524C240042022AB4B941A83042D242C298E0D095ACE19AC1454B9673791D3557D5775E5F62AD21BD165B76D77C02B14B9E16737F2A32BCF62F26893864C063B358C42458A1C037ABA1662F47562C729666D3F173F3229D6623C57A47A36352FA4BFAF97AE9E3E6EBBE36E76DDF300EEB8E36F1C7FCCBE8C1DDEC294496D5CF1DDAB69696EE0A31F3911229752D1E5F91716D2D1D9C3E8F1E3C91A4D5CFFABDF2A23A9CD266FC194311369CD37B3BAB39B2B7EF8030A63C771D4B107F28D5377A17DE31F84DE700ADC183C5102F970E795E7B3973F8F8C5BE01E675F7ED5B10533E7ECC22E5B1A585D259E796105F3BB5A38F4804D396A778717EF5F4AEEE95B48971F635EE3CEFCB6631AB3666ECBB04A178E14012D9BCFF63CC7A60D4FB32A9ECABCC234B63FEE48B6D876734428FFE0CF7FC2E8E2C38CF75FA1279CC67DA56D9857C8D03661025B8C9B0AE51A85FEB574BB2BA8FA7D5C70E199CA43BB29FDDEE6E1DF6A6DFE6FFFBD26E8219E41D940CFBBF3A9FCF634D2D557A9D43C55E061C63E65274B1007646A11B94C96BE3022B3D36964B6398FC068C6762A18AA4865E39F0B239153A9085A35699226D778A458B0B6C0DA8247D56EA4AFEA2BBF66496D84A6A12480A6A83CC406F42DBA564B418DDA20340DD2A14BAD6B054B5F7A918E7E97A55D658E3CE6785A5A5AD6E799A54D9510AF1C4AE71C78EB497BD06F6330BDA108DA8B948D682DA851734BD85180DBD5C5AA050BB9F4BC2F70D58DF771E807F6606A7B062A7D4C9FBE19BDFD0141B91FBFB0964AA183719B6C46C3C8B1ACEA2CF0AB5FFE99BBEEBC17C7C9D3D036828F1E7D0433678CA310F6B0A6DBE3E28B7F49D7AA125B4D6BE7A69B2E60CDEA353CF9C4732C7BF5795E7AF1058E3CFC38FEF0873BB9E0A28B31530EF3EE7F86CBBF7B159FBFF0CB2C5BBA98E71E9BC761FBED4FEBF026AC5C23277CF3A7CCDE7947AEF9EA616CDAB4F137DA375AA6BEA497AA866A6270FB8F2F619BDAA388F1EB2FDDED58316257BE79C63EC843DA30F12B31AA2C5CEB33A1A989B6BCC3FDD7FF9A293D0FD3DEFF127FF766F1407657CEFFE2518C523D326D2A3D259EBAEE3C66B8F7417A184F9B3B707FB8299FFCEAA984CB16B1F2E66F31D95B41D94EF160EF8EDC5DDE8E5987CDE6C83D724CCC882777131DBEC37D773D854389A38ED84DA94BF2E29FAD8FB78D8026E8B70DD5C69D289B708DFE624A7FFA2CAC7C10A9FA9506ACD26BAF665B2293205B4DAC484B86CFEAD6B94C3DE63784CE584C45D0AADFF51BBCF9DB7B561C30F41C284189F0B1E98F2C1E5CF01A56D3487A2A21C5AA4F64584AA69594AD0839872A8A4EDA6DBD79E8A7FA0286E2D46792C6C328F7B070FE93ACEEEC634DAFCBE469B3D879D79D09FC88C077B1E4FC40521CB2AB2F46FC5ED21965E04B22EC0D2B05FD5A42D055BF8CEF96A8F47672EEA9C7B372C16BA4A398DEA6F15C7AF97534F906516105BFFFDDA52AE2BDFE873FE1B8438FA1A13124C86458DE1773F6972E22F67C769E330727DD44476F95E7EFBD9B934ED89FDD0EDA9A15EBFA38E7ECEB30BDD17CFA8CC3193BB18FE1ADA398B3ED0C7A3A57AAF6590DD976F20DADACECE8E2D2CBAFE643C79CC0CF7FF95B76DE6F67082B6C3E7E0CC3F30DFCF4FA9F70FE2517F2916FFD89747333179CB62773278931E97B7784D29751CCB530B9F97BE7B347F13EDABC753C9CDA9505AD7BF199334EA42B65D25E09B1AD92B2B935C8D3938687AFFC2C3BAF7B86D8C8F0337727966DB2075F3F632F8645FD94CC462A58CCFFCB4DCC9AFF1372B5152C6ADC99DFF907F191738F61C1CFBEC9B6C507185DADF2687A2B6E7B6D34D3F63A81A38E9F4263241D83E46F8CF19C022123707D53750C13AB83D4DB5BB6EF1D48FFCBAFA4097A8827309260D1AA5179F12ADC7BBFCEB0A842C51841D94ED360AC22ED8B57670EDF76A9A642CAF658DA77FF2EA98987534B87A4C4C2532A04FEE590EAC2015BCBF59AE437FE4314E14612074BAE187CD3E0E9251D744459DC6C236BBA45533CF8DAC11AC76463F1F5E3CD3F5586E12AE327F1B696C6B2B15B61D5C21759B5F879FC420F0BAB8D7CE48CCFD09C32A15C566DBC64C34F142CAE48B7020FDFADADCF392B82964AC101AF0DAF641008095965AA95027DAFAD65EB899B71ECE187F0EDEF5EC631271FCF0DBF7C84D5AB237A7A9FE313A7EEC3A66337E3EBE77F97899B8DE6F2B34F20D732828F9C7BB1CA935FF9D58FB3E396A3A9FA16CFAF2C72C7BD8F71C3357771DD3517D0D4BA827FDC3D8FBE8E51FCF5F687E8E8EE65DF5D6670DD759FE69EFB7FCBAE3B1FC4DF6F7F96CEEE356CB7DD4E7CF8F8AFE2C515CEFDE269FCE1E61BF8DCA73EC5A3F7CD63D3299BB2FF413B70F7FD0F538C46F1C7975FE2B493F7E7B4ED27BCA7AB4DBA4566FC02AE95E3E69B7EC3E66B1E6246F1290A768E27AC690493F764E79D0FA075744C688BBFF6301A82802E1B9EBEEAA3EC565C4B2908F852F518C6ED77109FDA6B1223E4DE6942C5A9B178DE0B180F5F417B71111DF11CBEEFCEE60BE77E08EF679FA1A9DC45D658C96F8AC7B230DE820B2F3A94E10D364E281D7294D90AD81EB1915515B37224A65BFA78270868827E27686DC4B9A2550D8D10D37D94EAEF3E49B6EB452A760B552B4353B40E2754A69D0496476805F4BB799C714731E2D00BA96546E39829550CF02F7237A5554AB419830BFFCD861624E67409E1C652681073FBBC1709DAC6E0655AE9E82BAEFF006DC49F8761788ACA43C3C68C6C5502DEB772298B9E7E9472E72A96780DCCDDE750369F3491946912879EAA0E9492725F0A5444DF3CB029385831B861046DD464F3B24A6FB55395CAB7DB3976DC720BB69EB12D9F3DF74CCEFCE2197CE3A25FD1909FC4A1874F65A7399B3365741B7FFEF353DCFAD7DF73D159A7E21A0D9CF2854BB9F8E2AF73C0D6C358F0E03DACEEEE61EB3DF6A310C0F9E7FE9AA99B8CE0C453B7C2AD5A2C5B9AE7E22B7E42D1B31991A972C5B74E65F369A358B9D4E39C33AFE5D565CF71DD0DDFE1F179F3F9F90DB771F24947D3B96621471FB63F77DDF17766CD9A819331E8EEEFE4F1A78BBC9C35F8C021DBF1D5FD676D0CC46FFA9A622C7E2865D59D27AC05FCF97B67B38DB99031D51EC2D861B59562913D93691F388191B3B6A318A41961B8ACF60C965CF73166F72E655534816F15F6E288D38FE6C0CD52495B2450000020004944415438D50CA203ED4D873C72CB1D8C5F742363DD85BC1CEEC3CFC35D38F903FBD27AF7B1B40625AA511357F7EFCBB09DF6E693C76F45DEA8608AB56A6C612A05928BAD9EC074DE7963275E13F4C622F7365F270189E88053FE6BACBDE51C9ABBEE2132CAAA03494E74BE468A50A46C7180159B78D8F464C632F6D84B305B0E2634C51B3A79B30DA38FA49C578EFFBCF3346886AF4A7531E8F37CEE98B790CCD8C9F491A2AB2071D8BBE8A9674A8C2EE5BDB2B92816A92161B18757E63FCEF29717D02916A30DC3F9D827CFA0E69BAA3555E057802A515021F04DB569B7BE947B40F7ACFA0ABA2E41B9821F5429B9FDE4CC88ABBE763A9DAF75D2D3E9B168F96A2A7199052FAEE5B0030E62F1E26748D9DD8C6C19C1ECADA6D35F2810BB21B7DFFF14F73CBD884B2FFD22D5154B68775C868F18CE9FFEF14F8EFCE011DCF8B387F8D5F5D7F1FBDBAEE0C9A79770EDF577538A435E79AD9396B0C2772F3F8B3DF69EC5F5D73EC0F5D7FD85595B4FE6F2EF7C9217172CE7A3275CC2965337E7ECB38EE77BDFFB1A975DFA4D962D5BC6C8D179C64D9ACCF7BF7F37FFE85EC9A107CFE6D2A3777D9BABE6ED9DD623867931E4251555EE63E51A97BFFDFA77EC917E82A9C17CC2AA4547F30816FA3319B9DFC96CBAE3741A039FA79F5B8B79DF5798DAB79027E2A3B8B9773C5FBBF818C635B96AD7314EA5E8B072DCF3E3EFB35BEF1D0C0B5FE576F743DC6BECC5215B3430ADE333B4B95D2CAEECCD8FDD2D39E5F39F64DBF698146542A3119714E958785E34F2B270DFE3DDD1B707CFFF89B334410FF134D6C40D21B671BC1AC66BB7B3F6AEAFD2182FC28A629C20AB22E9C8ACAAEE22693F8BE104F46543CA63F661DCBE3F2776864BB5B53A06930E49563871817B2BB73BD1F00ED27B80C10B4BD7F05A7F48D43A82E57D152A012AFFBC718784E6835E1E49F33DC3F7C81A111DCB17F3F4A30F51EAE9A6BBBFCAAEFB1FC18C39BB52096302AF841915307D71C9133545D2DE6AD0EB59550B0E347F75AB255CDF5515686EE73A2EFBE2695CF8C58B193366138EFAF007B9FC473F62EAA4496C366632DB6E3591C6C68011C35AF12A350CAFC6CA557DFCFD91677968FECB7CE5ABE76214D6322C1D92766C1E7F6E21071D7B30D75FFF0077FFF5CF5C71F9E758BAA89B2D664CC46CCC70C659E73379C4443E7FD68934B6BAA41C8B6A25522649BEEBF3DCFC97F8DC676E60E2844DD8739FE90C1F9562D3299B71CD35D7F389D34FC10FE0631FBF84E17B6DCB41FBCFE2BB1FDA6BE3607E9357F55423D5D731A3AA38238A298B57D7C003BFB89669EE4B6C9AEE245B79896A763A7F286ECAD1E79EC5C4D646EEB8F116A62CBF91B1C525DC6A9DCD93C5980B2FF930CD8D06B6EBAB660CBD91C953979DCD1CEF3EB527F18BEA59AC6ADE9A3999679963FD9811E52E9EF28FE3267712DFFCC627185E91BD458F3863E35B92EA30A47A5CB7FC7A9733AE09FA5D02F8562FAF50C189B3AA5ACBE87F85E57FFB222D7D77908F7C023F8B6BE789CC32E950E476594CA348351FB29CD16CFA815F638D9A4B6CA654659F10ACFC9FD0A9FD76095A92E052A21B9B4AA1F1B7879FC5193599DED861455F593579DD783B53296291CC49926E91540A5148CA8C092B65163CFF0C2F3E74972A2E09D3C339E2C4D34835B4889684D8EDC531AAB85570BD5891B3786EB89EB7DEAD4E5CEB6A5E8DAAEFB3D72EBB317D4213E31BF2B43799146A31E75CF84B56F676F3A1C3F6C6E8ED60FFDD77E65B977F93CDB79ACC991F3F99BFFEFE4F6C337B575E5CB29A6F5F750DE77EE10BCC9E3E857F3E703785420F471C7928855C9A8F7DEC12666F3181CF7DE238C2A2C5A8F60CE9E6027194230A1D8A45172753C2B2FB09FD18B76491B6F3D46A657EF8833BE92DD638FD531FE195258B88A23C6D6DEDCC7F7A35DFBFEA87586686C65DFF5F7BEF01675759ADFF7F773B7D5A2633C9249364D2494FE8810408254020107A1514A509285C2B5C51B0FDB162E17AD12B551451505069222DB450426F0984F46432993EA7EFF6FFAC77CF00FEAE7A31578573EE7BFC8C199253F6FBAC7D9EBDF67AD77A9E891C76C83CAEFC0713F4D67C99918952A495527695864BD9AAA5DF8597EE7D04565EC7BCD21A0A56995F1907326C971339F1D0E9DCF495F339C05C438391E3BBBD6790AB37F9FCA5A7E359267581DC0D853C7BF7DD8C7AFC1A86DBAFB035369D6FBF711CBB1D3E9F86753730CDBD87B6528E67AD45FC26B71B975D762AF552D228E794AB7B28ED8E26986E16439C77A495443F7608014DD03B04DB7B7F513E289030E2846503D32AD2F5C40FE1E96FD21876295122DF88631AAEFA92C57C13DB2A51C62597188E3162090D4BBE04D608354012DAF177B26855571EDCD1F95B197028356269B4B395C6D86D7F7A8AFA8933E923C6C6EE3E8ABE7823EEF8D68D123D7B3B471F6CCA33450D2DA0A7733BAF3F760FAFBFFC3C3937C6E499BB73E4B127D2D3DBAD7420F232F411C62895223951C99A0B8582EAE2901F21683F2CD1DB9DA5D4EFB1D3E8E1A4FD6EBE7AD9795CF28D9F71DF531BA9696AE582D30E266C7F95B6A6D1FCE28E3F306E562B272F3B98D54FAEA679C418B26597AF5FF12D0C27C1A5977F9ABADA46D24983D0F5B9EEF70F72FD0DBFE6A6AB2F67FAB811AC7AF24D9A1A7CA6CE1449D5563AF3A6BAC0AC5BDBCDA68D5B88DB0E93DBC633A2394DCEDD403C59A75A148B9EC78DBFB8931F5FFD7B468E984DFBD67E628E49326E327CFF091CBC7836571CB3F77B3F71DEC3339F6F2F31AD394ED6F748DA01714FBA62E2F4C64D1A0C8FE5577C92D9FDEB20BE959F7A87D357BB3F9F3F6F0F565EF571660DACC5770CBED77B32D3164E64C9D18B9415594D18D2BE761DAB6EF80E0B78938D5E0F4F9BFBF0E0C0122EB8703EEBEEF92E6D5D2B98501E6095D3C8ADBD87F2E9FFEF0C1CA78BB4E1E3969B942052BF1B128B6F236DD6E0907E0FABD14FF94B086882FE279F17223A6385AE92690C2C07B3E739FA6EFC18F5E5172864E204A5003B94DB4203C32860BA3E7133856F66E8370C1A0EFF3ED6E84520BBE1926DCB769F61A82CDA08DF0B418BBC67E4BA9DC3E0DA5FDF4FDBAE7B51882558B3B59B82FFCE66E38E40111A8E924355F295D29E271D1D22A064A0C6BF7BDE7A8E271FBA8F2D9BB7619B090E597224D367CD637B4F3FA16DE1CBF049B1A8C8F96D19D162311A4E291428F76F62FAA4193CFFD88B4C1AD9C0474EDC9F29D3C772D52FEEE2E777BF82E18CE04387CF6444711D53C7CC61F8A4A9C4471BBCFCDCF3EC3C7A26EB3776D1DDDF4DFFC000D7FEE257F4147C16EC7F10239B1BE9D8BC96071E5CCE19A79FC8474EDA8F526F179FFCD897B8F207FF4E53AB855F1CC935B73EC435D7DD4BB61B6276248BEAE713EC397F1A177FF1304C7F1BF17892FE9CC151C7FF1BA1398E7231ADCC6893A9906C7707D34F5CC0818BA673E9A1737704E2BFFA9AE52FF76076BE40C9AF61E61EB349A665332EC492B69C4D1B78E4FA8B99E06EA62E3D8C6F761F44BC6D169F38752E9BAFBE90C9D9B56C89D95CD3B194E33E7A303B4D1F4D6A0036AE7C90179FFD23BBB8EBA0D0C7869ABDB866531323A72FE0B367EECCAB7F7C88F0A91B98126E2517CF73E7F6391C74EE6718BD531386E1922866E85EDBCD6D8F3CC8BC23163273E468A577AE1F3B868026E81DC3ED3DBF4ABA380CD910B33D8AA44996B6C3BD97C3AA1BE98CE5A81103553F4D4114ECEC0112B2E79D1F4EE08251D7CD86BAE319B7E40B5899914A44493269C978A56D2ED27296B2C7DFFA0214557B9D4F9C7E0CBE7FDD1DCCDAEF10BC548C551BBB29FEAF6AD091E940547491E11B29770C0A2389BB77E093087A59FFEA73AC78E041063ABBC8A4EA386CD909A41BC7900B2D827216AF9853043D24C45F2816D4EFE57C8159A36D4E3BE6381CD75166B00D992279BF8F52A6895FDEFF263FFBF9439CB0FF78164D4EB3EAB94D6C0FEAC8D794D875E729AC797C0D4F3DFB227B2DD883B6B6B16CEDCE71E7F2A758BD711BC54296712DC338E7D8C338ECA0D9384E9EC2408EB0D84898F2F0623E5FFDFAFDDC7ACF724A658B45FBEE43C3B02CCF3EFD04935BF7E1D1875752DFD8CBCFFFF3226A1236EDDDF0F14F7E879EFE7A5C2F86E5942996B7E0040E7B9F7924072EDA89F3F6687BCFE7CD7B79E2750F6CA2F9B1EFD26667595D4CC08C0389373431B2FF657A9FFC15A3EB33F8561785DEA9FC3877388B3FBC0BA3682779FB8F18EFBEC9FADA18F7761D43F33813AFEF4D66974A38DE469CBA80E1DDABD9D638953F6D5CC8B32367F3D9F3F763565D407E4BC8CB3FFD1463BC97899BEDF4245A78313B1EB7716F6A5219D8FC388DC902EDE6249ECE4EE5924B8F241DDFF13BB4F78243353F4713F43F39BAAA575526BE905AB008DF17B08B2FD1F1DBCFD0D0F358E4AA62D4E0ABDA7289A457C60A2D3C234ED10E088218995DFF0D6BFED984660DF8F148BAD194AE8F209A34FC5B042D32738107A6435F68F08DEB6F67DEE225E4039BCD5BB6D0EB5BCA20E0DD850A516697B6394983653333D2F0F82B8F77E94C0F493045521E83FFE58484F901D6AF7C8A571E594EB6733B4DE32670E0B127D1175A38857EF2A51C652FC0EA2DD137D04B4F42748B7364D66CE6D28B8EC149268967C6E3F9363535A841979A8C8CC77BD4C4928A408B5E89FB966FA0409A0D3DDD6CE91D60F98A57097B363363EC704E5EB698FA5840DCF049A513340D6F220C02D209838194C34F7FF70C9F3C6E4F9A0A050A81CDAD4FADE3135FFA05BBB68D66C6B4312C3B697F72E52E1A6B62643B4D1EBEFF756EFED51FD9696AC0B7BF7C1EA5EE1E36AEEF6563A7C5EAAD796EBEFD16B0B3F4D3C869679EC6D1FBB471F8ECE1FFD0B3ED0B573FCD813DBF64726925AEDCA9A59A28943DD27681B0DCA39C6FEE491CCE539B32D48F1CC7173EB1989577FC07B56B1F618CDD4E10F4902FEF8C6D94B0ECCDC48D3EA5CBB2C59AC8E6DC789EDEDE4C7761181FFDF449CC9E9A202D13A6A590577EF32B7A5E7B9011897EEA8B5962E28CA394EA4AF4960AF426DB7883793CD73D96CBBE7134095D82DEE1B86B82DE61E8DEDB0B65233B1E8AA07A3442EB192242B48D6DF77D8D86553761F839CA665CB95C883891882809F18AF07AC94C12370DB699C3695DF615CC96C354E3BFA8CB891B4628A2EC6AD2F06F8CCF2A6D7E5F357BE40C8B2B6EB88399FB1D4C4EF4387A7BD89475295991F345A4132DC42A433092A34B79E65DDCFD1796FCB78494E4E9B2A32F62F56937CBAB8F3DCCF32B1EA72F5F60CACEBB3363B7DD31F359FACA0525A294CEFAB8BECB56AB0FAFB793C39BC773F8DEF37063218FBDF43A2BDF5CCBB0E666280EB070D6540E9ABF3389708030339C8BBE71134FAD952DD90C1BB76C2799A9510E3066AE9B0B3E7C3CF16217AF3F711F7BEF3C8DF1E3DB48A4EBC9FBD03AA296AF5D731B773CFC34171CB127979C720879B38EC5677E93ADB91807CD6EE4B0430FE05B57DFC45B6BB78AEE3DFBEEB633E77FFC14BEF8951FF1E48A97B8EEAACB9830A2482256A4CFAD657D579AF3FFED0A42D13989599CF6D1659C73F8747619937C6F27CD7B7CD6795FBB875D272729BCFA47761BD64DA6EB791A53D01136B2D69CC2ABB961BC981B8E93A9E3C2338E60FA883477FCD735C407DA49967AC8181E39B31F6C714649902BC6E9C8D5B2AED0C07AB791D1B3F7E094C3C73069AC436005384680513254C7C8C3B7FC8CEDEB9F674C720BB5564EB9AEE45C9B2DA53AD63196D7CB6319367B5F3E77D2346A7502FD1E23FADF9FA6097A87A17B6F2F2C49A7912268F117B4281A32B89D85EC1374DCF4EFD4945EC1A68827BBDFEA347FB7EF8945214C924C6409D3B3C81CF913BC9AA96A08C0F293944C4326C59563C95F7DA8B78B2C8D8AA6CDD5BF7D90DAC93B9368A8253B90E5F56D39CA9608330DC99146EF34F48EFFF328CCBB9D5AFEFB510849958B39124609BBD4CF9AD75EE6A9C71FA354F299376F1726B48D27E7BBE473399C01A93BF7D3431E6FA087CB4F389D2096E247D75CCDF91F3D85FA38B48C6C0227E0E2AFFD80A9B376E1B3A72C521E81B73EB989B3BF7223E5C428EC641ACBCB92A44CB6B79B96BA04138739CC1C534F2666B2C7827D39FDBCCF901EDECAAFAEFD3A3FBEEED7DC74DDCFB8FDC75F66FF5D67F27287C511675D4EAE2FC76DD77E812F7DED3BACEBAEC3355B280FF451EE7A934B3F730AC386195CFED5DF71FCB20339F6D0D1A493033CB6F24DFEF38627E8E86E249B8D939918E3C4E3E7F3995376656CFA1FAB4371EE976EE64B179FC8630FBCC0630F3DCD404F11279654834081E92A3D9071139B38EE9803A94BC7B17C7073257EF89D9BE9EDECC22DBA94EA8B94A48FB33C023B1C413C55C78419ADCCDD670C6D13628C340D25EC550CB3602508C5C04BAECA9EC743F7DDC77D4F75D23B90C42804CA5ACB2B974836D84CDD6512071C3E97F1B5627CA51F3B8A8026E81D45EE3DBE4E752A4B2962D064AA2884592E9032B7905F791BA567AE221D6C51150119F6289B8EFADD0E7C3539578AC588178A4AC2B238F56852077C95C06EC5347CE5EB27943E34C8F2970E49DAA0A58783D0A36CC578F0E54DBCD09EA36DFA548A258F17D7F7910B93CA1F31AA67876FEB70486943EADDD185232A820C11F7D0EFD1EBFEFA2314CB2CC3C096C985304F501860C3EBAFB0F2A1E524029339BBCDC7CCA4F08B7982813EC27291EEFE0EE6ED348DE3F73D88FFBCFD768E397129E312B5A48B05FABB3B1935651C6EC6E2A6FB1EA1A9DCC9C9471E419F0FCBCEBD922DF9243D2583BA4C12AFD0C391FBEDCA4B2B96B360E638BEF2E95359B1E2259E5BB581867133B8E5EEE594BA3B98BFC72E9C70E85C5A4D97782CC9FD6B03CEB8F0EB5C70EA31ECB7FB144E3AF30B307C278593E1664997B731B1C9E1CA2B3EC3399FBA8A96A6145FBCF068BC621FE75CF815B2DE287AF349E28914B3F79BC281FB4CE5DC23E7D0F08FE5673A722E0D0947D95E6D2F85B4E75CBA7A5C921834C7025A6A6C52A998D2B3B66216253FC0159F411F7A0A45E28E8327E7A6C8C51A36B665A9F6B8540CE2D226477EF0DC8D34CB6588AA1C26294BC79174678621BDB912FD259FDE6E0FC748D0506F924AD8D4A694CC8CD2DE88CE1EFDD811043441EF086A7FC76B444D4ECD518591A69CE8308B2251CC18C0E85B47FBEF3F4566E079CC720FA6635090C942C32216B8247D71CD0E31BD0CA6EF914BD69198FF059C396752B01D92AED4FD061BA3FFCA3129A713F9E4D0C3B5626CC895F8CA8F7FCBE1279CA83C015FDA384077C9A2E485984E4C7D6195D4A81AB0F1552D5A4C6177F461F9B63212756D11FF2F63FA52672FB2F1F91758F9E00334B64E61E2942978F91E4A035D2428D3DFBE8D733FF23172D91CB9ED5B98B9EB2EACEE29F1B33BEF6763470733C68DE2CA4F1D4FC237B9E791873860DF3D495B8EAA636F77037EF8CBA7B9F791959C78CA899CB1FF68AC810146A69398E52C99749A4E69DF4BD6F0F0336FF16F9FFB3ABFBCF91B8CAD6D64443040A96C70DF3A38E77357D06214B8E2B2CFF3F18B7F40A97694723BCF582EF6C05646267D2EFFF7CF70C1C597327DCA08BEFAD933E9DFDECD672EFD019B7BE378AAE3A6C4E9671FC3E2853BB1706A1335A68BA8FFA19C6A06FDA48C40C9BFCA5E853C5222A615F8AA53C753E52BB198120D6C4F8959E54CA14D54569A91EE2075E1B4558B9CDA331EBA729ACA8C5C49091822A06DC899E847FF53FE81D1FC67D2AFC3140D153BC4370A04A194326218651B433646E40D24F5362C7526FBA1741B0DF6BCCB9D617970A3DA3209ECE8FC8E9410C5AED6C330A400AD47BD77F4FBA3097A47917B8FAF0BDFD6878B6ABA6A96C30BD430871196F1DEBC99F5F77E8F5176077EA143E90ABB564289CEA43D710217CFC238040E091FBA62AD0C5BFA4DCCB10763F865E50DF7B70601A411CF1265BAB0846FC6E8F64D4EFFDC959C7AF639D8B114DBF201AFBCD58E53D3486FD1C550060111415BA18CA2DB7F9641BF7BD96F9741FEC21EE2BBB36D2111D7128353A112595791A0A783877E770703258BD9D36761147BC817DA09077AD86FF24CF699BF90BB573EC5019386D3366516675D7D072BFAE28435F524BAD7F2D19D5BF8F64797F085EB6E63FEDEBB71E4CE13A5AF8F6C6873F97FFD89EB6FBB9323971DC1E5A7ED8BD1DF45C271A8AD4D2B82ECECE923595BCBABABD772EEE7BF4BCEAA67FEDC299CB1782E13DB5A5995ABE3944F7E9D45BBCEE1D8C3F6E6F26FFF88CD03B5648B319AEBD2B89D6FF0D94F9CCCD8B67A3E7FF1773878D1CE9C7AD4CE18418EA2D9C4AFEE7E955B6E7F889A9A7ACE3AF3608E5B324FDDEA4B2D5E8D1899E6A0999908B544FB084A163694F6C4245933F2FEAB51B2B4D282E34486DC76648F562647027155977D0871563708C218E550CA6496DA91907AB19A0317053BD5E71E5D64879CC0239543303DF1CA32089D10DF120A8FA460A58C21E79E64D6CA744D8859FD8BAC41DC6AE5962F1E8976C9AF96DC6DB91886A7F4370CD7899E2A29B4A4D2FAB143086882DE21D8FE9E1749CE1291B33C2C75D64A7786B89AC89776033DCB7F42E1F99F31C26CC70D3D4A661A2B30487992D124C8C765D8C4265D36F16D979E86F98CD8FFAB98CD6D6037802935E4BFFC90AF9B081899483FB44DBF11E7FA7B56D253B699357736B91056AFEB64EB4089205D475E6D3ECA71465F36E9E8F89B72A3FF839EBF6C644A99447585843671CBC4280D90A2C4338FDECF9AB7B6B3EBC4A990EFA0A7B0911ABFC8BF1D761CE9783D37AF7C82630F9A85196BE0DCEFFE812DB1C9CA79A691ADCC4A6EE4DACBCE60C34040EFF62EF69F35516DE29D7FD97F504A36F389B38F655A7303996000694A7CF98DF54ABA473A5386A5E2CC9B360ECBCDB17920CEF35D393EFB85EF72FA01D3F8DC1947B32117E3E4CF7C8FADDBB37CE38B67E23809AEFCD1AFD8BAB95F89D9EFB7E74C2EF9C2523E7DE94F58F5C25B7CFEBC539931DE22F0F364CD26B6151BB9E8922B3874E9520E5AD8C2B28593A811C1AC7209C349293C22CAF4445E90D096ADE442446AD4D0EF18B80634C85D8D30B35C24079DCF4243BA810A91C26190023117360C35C12739AB5C0C230571D98C96734D08544858DCB5856807F78207E3163A39027190376284240870D424A1A887CB5362D2D819DAEAB551154C2EF9E2386F83278EE0018168489B1E9ECAD1E55C8F2B971D7903E9B0D33EB17F0F5FFCF9733541EF3876EFF1959243475B7FF285B4C4E8536E37CD2405E594E292EA7B92DEDB2FA6A6EB090CC3276FA6947E47C22F9113271243BA9FA5DC21E3B3218E78CD0DDF9BFAC3BE8E553F77F036F22F1F8E6C52DA52830CF34A0F386BC4D9520CB8F0CBD770DA47CFC0B04D725EC8B36BB6D24F92BC1189F66378481E67292190BF9E01454A797FFDE159059539E3273083B852A18C592E6630C09A375EE2A567563377C438C2EC46FAFCCDEC356D2227EEB4076698E467AF3CCDAE13473271EACE5C72E3FD3CD3279B54719CE216CE5ED8C625272EE0D7B7FF9E1933673267C6246E7DF02DBEFCD3BB39F4B023F8D87E23195F78835E3FC913ABB6B3A6A7ACCA1E3535359C71EC1286079D4C1B912455DFC26D2F77F1EF57FE9C0F1F30850B97CE531BB3373FB999AFFDF0D78C4CC137BE7C31ADE3E36C6FEFA0396331AC7624A79FFB353A73358CCCF4F08D8BCF205E2A73DF1F9FE2AE87573390184E7BA99D8F7FEA14962E1CCF4E0D4952A2DA2C59B0158DED4704ED826B53B0434A46995A378629E251494FB96567DCB8AADFBA8E64CD83D41788DE899C08D26A1995B7A24E1BA9F10FD6382463167DEFC109D1774C71544BCFE09D9C3C57F276C9900325156B88A34E1865C4C2AFAAF5D3C86248894262A72E1272C12D1288ED5528F74362EAE063198E2AB3A86C5C0EC77445111A0B59C33FB8F8FE1EBF79D5F0344DD0FF82284675C2A836278A1AF26512B2140A14C9C85A7AB1DEBA95CE3F5C41A3D54DB198C788C5D5449E6BCB1747BE28A2BB2CF98D85E58514CC3861CB5ED42CFE06566D1B864C8F85B5CA6C56CA09F2E5B7E53B2B99CEA038A9FC291ACC05CBE08B3FBA8354EB4EEC31B70D4C938D399F475EDD8C9B6A2070E284BE87657AEA4B2B9B48437DD2D28027C7FFB65EF4DB3DD2EF2E6ABC03AA6B97D5EDB2E3891C694C8D443B691BCFCFD1DDB185D71F7A9C098D4DF40D7461A661E9A2054C8D25A9F13D7ACBFDCA5C77E4849D58E35A5C79CBEFE8CF0E30BBB5892F7DE80446793ED7DCF15BCE3A6D29E9548A2FDEFA003FFAD3CBA4BD5A6EFCF431CCAE29F2FA86F5BC9A4D71EDEDCB39FE88A574AC7B83975F7A91C316CCE5F47DA78059CBC7BFF69F4CDA634F8E387026CDF492B01274166BB8E287B7F0D8EA2E8635D4326E784C79EAEDB1FF7E7CEFBBD72BCA690807F8F2858793B03CE2C9363E71F18FD95CAC258BC729A7EDC71EF3EA386EC14CD2865C5425F6AAA2ACAA03F29BDABC0D2C655B25B5DB444044E2B68767F8D8414CBD46D40E3D951FCBC5D6896AC35288928DBA77BF979A8A8A646555D62DFDF183175095302B612BC98C878AD562DE1B7565FC3767B3E800413276F9E4C1F348069142847CA31545742FD5694B9D6FEFBC8F64FA92FDCB5D8126E81DA5194DD03B8ADC3FE875B9C11A71DC5B47E9A99F917DE6670CA303CF2B508A67D468F19FB5DEF99EAAA78A13897C397B5B9730E2804F632666133A22BC14E5EAB2C3AE4A142A07932F6A747B1B88C469CCE68DDE02CBCEFF3A9FFDDC45D435D42801FD35ED03BCB1B5879C19C3B593B8382AFB7E878C658368A8A631748FFC4E5BE05F82C495FE595F7446A4C40161DC26EBE689DB0603EDED6C7AEC1132C904DB7205D58298B161DEE8619CB27057EA4A7DFCE2BE3F70F0D1C731BCB6254AE9CC027575352AC52B153D1E7BFA112E3CEA60AC7C8E177D9F73AEBA95DC8612DF39E764C60CEBE7E9D7DEE0F617FAC88C9BC73D37FC9423172F64C573AF72C159A7B0685499443CCDC32FBE8597ACA375FC6836BEF10AB3DB5A48A8E11F9B1FFEFE39963FF512FDEDED943D9B52AC8E58C266C608B8E8B40319D760D0DB5BC08DB5F2CDEBEE62E55BDD4C983C860F1DBB27472F18CBE88C18A5EA1AEC3FE8EBF27FEE6D3441BFCF210FFD3C8111C733039CECEBE4EEFF06E12BB7529B09E8712D1CC752B5C4B769310895CE83E85C88C1AAA885F565F662C4215FC76D9AA3BA3A1C21D5C0509B5192C5444327463479888BE707F41A31EE796E0DD7DFFB1C1F39EB38FCFE3299B8C9AA751B58DB53A6835A72B1464CDF1DAC9B0FAA6DFC37B38041F78CBF82A3BA7308A20D2755028D9B845E8954A988D5DBCF86671F63203740AF91C44DA6E5C699FA5217E71DBA1733EA2CFA4293A79E7D95E19906E6ED328FE67175ACDDB68D37DF7A8BB56BD773E6C74FA4B954A43148D29F88F3D8FA2CD44F7ECE0000200049444154F98E3263E3BD24CC553CBB21E089F67A5EDAE2D232AC9E1199180F3CF420A72C3B80C5936D1CDB25AC9FC065DFBB8D97576D27C8F6B1F7CC662E3AEB086C7A544D785D87CB6B9B3AD8D6D989E3E79937750CADCD0D140A457C5274F7E4A91B3E92555B7AF8C14FAEE3828BCE61EF69C3993326493AEE4823E4FB7C96E98FAF54043441BFDF91F3FA09AD34BD86A5062B129D0F3070D7D749F4BF8C5BCE49F561D01B303A50D3B4F0C2882C0DCBC12EE7F19219B65A33693BE42B18A3F71ED48F967A7792D0940D27B92D954A6208A56CB4B1E3A4D5A8F5C7BFFF3B82581DC71DB680A4ECC2DB266F760CF0C2E62C1DBE6C1A451DDC6ABB4A751BC834A46CB6A9662A5533FF737BAC3F0754363B25E9561B856648D970C95801357D034C88A5787AF99DACEBDA4EB759879F69A226EE606D5BC3998B66B2706C0D8E5987418CCDEDEB79E8B9C798B8EB2C56BFF52687CE5FC0C269B358EFC86698CDD7BEF83DD22D33E80D93CC9AD8C69E637CC6356CA5BD3BCEFAFC08AEFBDD2374F6F4637825962E398046BB8F836635622513DC78F74BFC66F9263C7B3485AE4EA60C2FF1FDCB4E27166C259673C97B31DC749A62394BCA28E2F66EC334124A9CFEA6FBD7B27CC573CC9B37819AFA0433674FA3ADB59145B35AA93307C5ACB451EAFBFD2DABD8CFD704FD7E874EDAAC4C5BDDDE0BD1394137E1C6FBD972D7B71815AEC52BF7ABCD1E65E2AAA6112513B5F014519BD84E19513CB28D3A7A9D49341C741EF6A483088C264CD9DC911E64D1831E1CDB961E5B4217D7F309136936955CCEBAF82AC64F9EC221471CC240292096761828F8BCF1D62636F67BF4953D4C2B8E614B2B97D450A52736FA918199779760DED1F418BCA0C8E693B2C492563BA9A59649FA65C60606BB8F68E6869BAFE3ADFE7E8A99568AF14670CB4CAA35B870E97C86E5B740BA9604068DDE00231B6BD95E2C61D6D4D05C5B839D1B6063A6898BBEFD7356777914E22D947C1BA7D8C9FC8601BE7ADA7E247C9F57D76CA5D78BD3950FB1620E69B3C8C2B96329F76CA0DD1DC985DFFC397EF34E749644FCBEC4D17BCFE0ACA37765DD2B6FF0DCE34FB3FBDC698C19952257EAA55FEAFF6583C64C3D66A1C4C997DF8A97A8A1C6EEE4DC338F62F2A416769B319626C724E5BB18D6FF466FFBFD3E39F5E7BFDF0868827E9F23A04C2764502B28AA8D1D19C7B6C32CC6BADBE9FDC35771BC7602E92D0D5D6246E4B6AD085A48D78811D8596CDFC229A5D50E538F91A466CEC9A4E69F831F1B85299B89A1130D3D8432A138E84F3828B42FFBF11D399F4F7FEB1ACA756338F8D88389C76CAC72C0F054C8FAFE40B5E06DDDDA4D4F7F5699C32A825624ADB6B030DE766D91FDC37709440F66FC6A807D7023AC6C9449042EBBB6B4302595E14B575DC556DF24A86FA5686430DC80E9ADC33968562B6F3D793F9B8C124BE6EFCCC1231BA82F9721D9805F3B8C7C6180965A876DE524C77EE96AB6378DA5148892922C7080C52D369F59381B0A1DA4E33E857C91AD5988D734D0940A4939657201F823E671C1D7FFC0BA7C968229651E9F51318B2316ECC3CDD7DE4A602598501FF0B54F1E43D9CF71E1B7AF615B39C567CF3A83D9C32C4EFFDA2FA81FDDCAD9272F64C2489B39D35AA889992AA699A106455D827E9FBF6595FBF19AA0DFE7D8C926615C0A075E0EC218453BAEFA5053C156FC977E45C793D762BB1D51F9A13CA0485A287688A04D0AAA7420FDD209CF26EEE5C95926F9D10B197EC0A5987593C0C8E01B32D9160D31A87D3E51A153CD192E452FA4DD33B9EC27BFE3B5ADFD2C5DB698496D2D84A51201F16823DE3070E58E7D906C865A6AFFCCFC7B6810E25D98CA7EBFEC5B4AA78064D152B50D5C9726C722ECEAE5C2EFFE9852C368480EA318C470EC04E59E2E6A6352DD2DCBEAA877BBF9FC718B99307624BF59BE92753D2E5D6FADE7E2938F628FF92D2CFECC8DACB26AF18334B6E713789DCC1AE6F0897D16D0D9BE86DDA70C23ECDD4ADEA82388D590A2C0B69E6E9EDA52A6CFD989DB1F788A3E11A04AFA50EC251504585E02CF8B633A718619FD7CE353A7B272E5D3FCFC8F4F32409AF1C393EC33B9810E3FC9BEFBCD67625D99DDA73711B70C3C31B436C5D035B2F58D0645F44323F0F723A009FAEFC7EC1FFA8AB2AAE486D8BEB4DF496D5732636973F508CBDB293C7F25BDCFFF96B89FC529F59130A4AB5AC672258B96B17021000F533C0E7DD15208C8CAA45E7A18F9702C4D8B2E20D6BA0746BA9520CC60A84C5AA5D17852172E9688C5E3644354CBDFADF73FC34F7E7D1F6366CC63FE7E0B993532855114A70E5F3965A82E0ED5DA2599B249A88621A2662BA5D7A112E877A6570A66D4631B97A9379131754C3CCBC32DE509F379CEFFDE2DB80DE308A4275C7AB0A52462C8C6A8110D675831EA8B1D7C6AD9029A86D772C94F7F494F6A2461BEC08C8638D3C68EE2AE575FA73FDE843510A3CE8742AA4029BB85F1758D746F58C34547EFC1AC06D8D6E3E1DAB58C1DD9C01F963FC3F54FB663D5A4D5E7F9761D1282985704BFA014DE4A561CCBED87623FD3DB26B169ED5ADC528954CA64EAA4111CB0680F268E6A60464B9AC90D0E2919891664C4A24CEE2E641250C9C1EA4DC27FE897E6FFD09B69827E9F831D8D824B563BD80AA7BAD654E33342DE8EFF32D995B7907BEEF7D416D761FA7970624A8E3450BA083E31D720A6349F8B146C08620D7805485825D67A696A26EDCFE8DD4EC51CB60718C3D5C6A16785140D9FB410AC2B9B837102D3A60F93B57D1E3FFDDD721E7AE635C68C6864C694494C9E3291444AC82CEAE61592577DDD7E340AAE2E3383757451E3B1D598B2AF26DCE4989076BB42998429C332E25E5E22DBB1991FFF76397EA2498D69DBA6F4474BBDDBC153E576B1E94A5063949992F4189E4EF2F89A4DF4256AF192719166C3C8F763D70DA3EC2748F65924DC806C3A209F0C09B239D515B2DB489BDD5A33DCF7C70730E31976DD6D771E7E7E2DABDD4612563F948BB85E1ADB4AA93ABF119628067935FA1C0B4AAA9D37ED24681D51CFAE9347B3F3F43686350D23D390624E8B43BD09C9D0C310861F720F91DDDDC129C01DF77C7C9F4F4EFDF1EF3B029AA0DFF710FCF503900452C60462EE1678E9267A1EFD31F54E0FB95C3F8129B7DF0E3157C850326297D0F0D5D49EA82188C595D48B0D338BE92468EF1FC58859279199730C467D1B7E22495EC472064B1ED22B2D03E192999765F0CF3068EFC9F2AB879FE7D11737B161F3369C545A5D14E47364E046DAF62C4F067C2D4A6602576AE222F2EFBBD8AE488C7A245C9FDE648CBE9849831FD01008413B148D32138625F9E8874E26EEC41508327028D660A23F11CA549CA4D0A2952D35EC3020085D4231A495963D99620BA5D41365EBB68C45CBE44628B39972F109294BF62EBA278288F48D7B79F596EAA2419C12316CAF88E9CB7B86F8A25DA1EE0CA44DD153C33AA2F857934ED0DC9024637B4A36B5A5B18ED14DB56A8C59ED1F0CCD74BC5D0192F789DCCE23D7759D417F80BF661FE843D304FD810E0F944B3E8E288A051DF8AFFF8E6D0FFE8816731394FA2985B66AD113329571703521269A0FA168F34AFB99E846D7E30AE1D5186CF73DB2F166C6CC3C92F4A4C33113D329261B285A320726536A91EE981A1DF6C46216A5AE5794DAB11F5012229381C5C1CD2F21542B1644ED734856ACE62409428F8C08A189D156FFF3584623E5D444759CBE15952EE4734CD320ADA695A302493412138DC60D8DBF28B303A2717929C944741C196DC98F7CE6A09E9A7A9EAC41DE4F9559E4C2E599F8BE41393055FBA11C9F9ACC547571280CED69CA1D8192DE8C2456FD207ADFB438C2F81EE2BD98AA91C1E5485FC2F20AC40C191672647E3B1AE953BAAF722711AD4875CEFC4D25930FF8C9A70FEF7D474013F4FB1E82BF7100421E5E806FCB5660489A5E8C55B730F0E055C406D6108B998A607CD3C63725FB8DC6879DD0231E9471C4BCB55C47681994CC3EFC544890B4E9E84D520E7662C2B42538BB2DC3AC15BF43E5861869E108E104B6AAC306410111FF15C19D282B1F942F55F9B610734CC9A80A35D9A2181CE4B0826E286F67DB8B2BD8F0CA354C1AB133C3F6FA77C2CC04BAED90786892F02C51E2C142FA58A2894735062D3B97CABC20226A2B28A83585A6B40CCA31C8D88750B964D8F2931C6C3D144A97632A0F66C0836A6EAEBC775C19EE1684BA95C101AA246404458278245E24C6BE8472BF227723F259715C71B909F291116E98A02406BB1E241CB9B8E431C47841843F4379BE307FD41F2E23FC43E3FDEA42F4413EC7F4B17DA011D004FD410ECF601A26596BC996B2B46C046EC1DCBA9CEEE537126E7B895A3A4561034F7A94CD48B3574A0F4EE0295D615386522401570236A2A017533A206E20FDD4263D5E0375A3A653BFD36E58ADB331336DE0B480D9A04A25422E41200E1D426E919980CA73076BD09E68750C119E2793786FE2AF7E84BE67EE2451EAA49CEAC21DC8D138E778EC7D2FA5109FAC24A22C374B188BABF63F718889EADA923A4B7921EA1A512A97EAAE40B253D9649432CC604FB8126092BAAF088FC8C69C64F2D2FF22346F284B30B962291991A1D283BC8F682DCB55668835AD482C88A0AC6ACFEAB3B009CD84EA9429ABF64643B5321A229A216F618934A741D9944B96341146770543C6096AC2F39D02872278FDD008EC08029AA07704B57FD56B064BA2CAF455B248CB410A0F1605ECAEA7C9AEB889D8FA7B70BC2E8AAE48594AA923CA2FA5AD4D39A1885EB01054108350B23D5309E763E6D53DBEE9C94462827E2F49393682A06122B1A669D48F9B8BD93806DB6EC6101523CB21B424F78C8A0C91D04F99A0D44158ECA6B4EE55B6AF7D01A77F1D56DF3AEACD3E1CA3487F902193ECA1AFE853B3FFB770667E32B230F07A3113494A463C1AC4192AADC806A392C75476E894E562A208171C25E216F5880C9520926148B958C649C7C8B945758CB2C928651AE1F081681092B429629A6542257CEFA87AB928FD498D3A65464342434A9C42D20557962C251B116935900E3CB12D1372177C074C033F167D86943C54295CFACC552B8B107E4939942853DFA18DC37FD579A33FA76A10D004FD010FA51AD2F64BEAF63B3493E444F7D780DA3087595C83FBF40DF4BDF22762412FB6D7AD6EC9A3163A07CF8C0D2A9545824BD2BAA7C87550B55DB2605F32615BBA26C41123AE3EA3E01A943D534D0E0E146298B15A12993A9C741A4B74407C9F72214B21D747C6DB8C13F42B764A482924F4702C297EF86A53CF0EC711943690A9F7D8589E43EB513760374E278C95D8FED61A4C291128E257A29714DCB2FAEFD671E3545B9FD4BFD5A6617F0F3DEBDFA4BFB313DF4AD03A6D1E89E175EAB8E3F27257EE163CBA366DA4BD7D1B3DFD79E2E97A9AC78D66644B73E464227716226E1F7874746CC32D9748043E8D4D2309E2B5AA94942BA35CA8950788EB31B0693D461010CF6448363663CA6460083D9D3D1472FDC4247B17BD12C7A1AEA9194B0C0FDE4E98A36ABDAC433F34023B828026E81D41ED5FF61AA167B1278A6EA35509403A1D24A3B64CA5B111F3B6C0D6E7D9FCE8CF31DA57D0686C477A14442FA36CC43143E92916828EF47F238296FF975A2F918591CAF44202A590178948CA3D7B10183876B431174926C91046A89A121CC9BE955E748813ED8DE1FB22A31A792B7A5210B76DC2B2473A99C2CD0F60587136DA539878C2B7E92D3673FF8D3F65B421033A01252B49D64A3360A7959EC67E4B8F61EC9489389ECB0B0FDF49D78B8F901A68C7714B84E9E16C2C25689EB517BB2C3992783C81D7BE9195BFFF25FEF6F5386651757B88ECAA5F76B1EB46B3D3FEC7317CA779AADADDFEFA2BBC78D70D3494DAC91B09DCDA56F63DEA2324468D15856699DD216D14B9E717D7D0B0F649EC5882556613C3763F84DD16EE45D8D9C193377E8F96FC66CAA275E2A4289B31BC781D8D6DD3997BC0129C54ADDA17103391BFE519F92F3B95F4075524029AA03FD0618B085A9C40E4365F5ABA645250E8526AC9FD56526DD4D588C346711585153731F0F25D64BCAD588840FF60378354654307D31F525693F281F44DBB58661CD78DDCEAD44C8565E08B2BB4F8E0D9268E6CDA495B9B6CE50DFE69887555549CC633D41CA4BA084836698A09A2D292B6F0FD003396A5E8264904192CB39B42CC677DDD1246EF71212FFDE1E70CEBDB489F339A6E6B0439AB8E6D41123F5587317C24479F7418AFDF791BC5177FC7C8A449A1A748B2BE8E4DBD2512C3C6D121FEE82DB339F9C88378E07B5F64A2D54F284A7DA14191128EED91CEF7290795D5FE68C61E7B296D931AD9B4E2517A1EF809C3DD6D6C1157927413ED99691CF9D1F328C662D418215EE766EEBAF2B3CC49B804E52C5B1A26F1277B1E071F7B3C63837E3A7FF925C6F5ADE24D7B04F95823AE99A4CE1CA0E859F48FD987034E3881926953636947910FF457EC037E709AA03FE00192C31B9ACB8BEE9CDF99D293BC58BA3B842B6352AA2876521E58C5D67BAF22BEFD0986C7BAC9CAC48A19236D2530CB723B1E1988AA0D35C357A24BEF6C69BD7B0630525F7FB70CFF3B9FFC0E68AA22AB860B25C38F3A3122FFBAC8EB2E6E0D5014D926258F1A27E69528382DBCD97820D6B65708CD466EB63E44BE7177EA9D849242ADF53A18B7D358C64C1C46FB4F2E614EB88255F1793C5A9CCF969A5AC64D18CFB06D9BD996EB649B3D8C93269834AFF809713BC69FEC9D79223E9B516DE319EBB8A4B63CC9DEED3F57032FB70FFF08A79FBA8CE2AB8FD27DEFF7C9A75BE90E6DA6E65E6585B91F079E760EA97175D4E1F2CA138F91FEDD15BCD0B080D1FE1B8CF43BB8AEE15C962C3D9811B1809E9F9E46ADED714D7A19E9917355DD7C9F37AF60467E1DB7D49EC8D4457B3067DE6ED458A2C5A71F1A811D434013F48EE1F6817955A0C63242D5B5A0FCEB4A9D60B4E3AE7B82ADCFDE436DCF93C4CB5D329281694AAD39505649A23F2DFDCB0969C753031A83331A8A60A3EE5DA1FEC86D63C85EE3FFA568D9948C46BD85A5A311F2684063A80CEB9A35E4EC3A0CBF1BDFF4A8A544C9AD656BEDC18CE85EC7DA5203BFAE398EC5C79EC8B451524C8E8B123596EFF3EC430F925C712DB6E1F3FBD49114C72DE2E443272A31A25ACFE3E9F602AF6EEC61FACAEF32B1FF351E482EE6A1D82E1C75E49EEC3E26A188B1DCD7CBC6FF3C9BFAB08FBB33CB98B2F71246995DB8775E4E776234AF596D2CCA2F676B6C26EBA69DC4B147CC5663F7F75FF525DA06B6F0447277A6955632DADFCC350D1FE7F0231633C2F1E9FFE929D4583E37644E61AF638EA0796492FEABAF6052C75D3CDCB894626A24277FE424629625CD8B1F98F3451F486521A009BAB2E2F5DF8F368C6AB8D2252D6D73AE2F8EE1628FD44F50EEC47BE9410AAF3D40D7B62748C7B792B245D2543C3E0D4C3F4360960895B55534FA21AD6CD2B7A0F2F2506AA8B9C83B2F52DA78D79F839C1ED428B53CC9CA230797C8EA28FA5D265D12F8A9E1948C3E7A1D9B7C364F6BDB3E782D47D3FFC7DF50B25AB83BB18896B135C4824DE41B2670C0FE87D060D93C70FD2D4CDC7C2D7DC9366E708EE0C0630E6671ABA38CA20DFAE83732F478063DDF3A8A616E8E9FD59D4DA16D573E7BE4785281B865DB643D8FE77EF06F4C2EBCC4D3E9FDD8D4BC903D674F2075FBF974382DDC1FDF8FC30AF7526F7A5C5FF3613E7BD662DC815ED6FCC799646B66F1A439830585FB68F536726DC3791CB1F4405A9C32D99F9C44C6F1B9327E21C77DF800DAC4DDE63F2EA0D95FC91DC38E635B3089F3CE5F46C6922E0F4DD095FE357BBF8E5F13F4FB85FC3FEA7343A9494B3521A984FC076951C97E4AE669973C0C115DDAFE04DB9EBF05B6AFA4C1EDA1A69CC7F2030A660B45710537CA988AACA50B448C6D85E0243996AC36F294FBF3524BB400531AFFD4349E585A398461D4CE27A3D8466853EBB5E3990E5DBE455FF35C46ED711899B67D59BF7D049B6FFA3273F22FF35A7C3AA659C6747C5E4FCEC618BE134B0F5DCC833FFE0E93BDE56C3666736FC3617CF8C38B98E29862844DDCE8501E8C5BCA0EEBBFB58CDA00EE6A3889C97367B26CE1580AA429173CBC789CA7AFBA8C9DB30FF3AC3D8BE589851C72D02246FCE674B61ACD3C38FC04E6792F32AFEB3E7E9D3C8645A77E849E477F4DDBEB37724FDD09AC8D4F6249EF2D8CF637727DFDB91CB1F42046D945B2FF7522B58EC7D5F6879937A591968E6719BEF129B6D7B4F08BC4329A9B46F1F9A32690144715431739FE51A7FBFFB5F7D1045DF1118F4A0A91ADD53B0F95B3853E9E212D7A268E7802660B94BAD7E0AFBE8BAEB5B763FAAB70C22231DB26663A940A051C3101308DA89F37907CD82190AC5AB274D59E27024DEFFC88CFB61AFE905173CB60A054209192294483925B269F77709AE750376101B1992762D44CC53392BCD1E9B1ED868F511B6EE0F1D442422F895B34D890D9854E1C3EF9E1053CFEDB6B59D07E3BF9603A77D51ECAD91F5BCC58E93691C93FAB1DAF94A23D4CB1E55B4790F15DEE6C388D390B16B078973ADC308563DA6C770D9EB9EA52E6E51FE749732E4FD6EECFBE7BEECAE8DF9F414FA285FB524B993E7114739EB984CD35B35835F163CC5A7B13A3FB9FE3C6968BF0EAC772F0E6AB199E7B836B336772F4514B19E564C9FED7C9343825BCA044A6BF87C049D1DFD8CA23B123B8DBDC8B530E9DC8D231A5C834414D69EA8746E0EF474013F4DF8FD907EA156F67B56FB3B310B68C4047A3CFAAE42059AD742B88BE841B623945C27023F96D2FE2AFFD2DE1FAE718E8969E8800215C51A416CF6602E966162381A8B54EEED47D6F682331BA6DB7C298AA6D4B0B483994917293BC68323B49EAC78EC3987534F191FB62C647E0D1AA3A3EE4B1B5A393ECF5CBC8C652DC913E996953F7666C4D8A7E33454D2264EEE45A1EBCE55BCCDA742F595AB92DBD8C93CF3C9A29A68765B91074937346D11342E715CB1851ECE4B7CD1FC7DE6509A7EE5947527AB37D19854FB0E23BE7D3EAADE5D1DA25AC8E4F67E9C259C46F3D9B7C660CF7B22F4B4E3D92E2D527D09A36B99B8359907F1C3F99E0BACCD12CDC674F46DEF969C6065BF851F20C8E3966192D4E9EEC4F4FA6D67179303E9F2DC134B2B2FE844BDE6D61E7DD7763D91E1986491FB88C7FEB3EE80FD477A6920E4613742545EB2F1DEBDBC43C48C86A4E7AE8213E538396F7868B6F7BB84A7D2DAE6ACE4660621573185E0F617613C5CE5728B7AFC4EB7B8D7CFF5A707B890D1ABE4AF61C480F74A440AFFAA495A6925154433166AC0927338944E33CD2A37725D63403E24D789934BE1323E6E6F0AD8C52A293E9BBF6AD9D94AE3D0E23D6C0CF9D935874CC91EC322E261A4DD4980186EBB2F1F9C7E8BEFF47D4387D3C64EDCD6E277C9A29633338A18BE99579655B8EF4E826567FFB3CF6F456F364389B0DD38FE1F0A3F726E379A40C93979E7A06FFDEAF924CC4F865EA78EADB66B25F9B45F1B79750488EE00E771FCEFEE471ACBEFA7CA6145EA797F1341B259E88CD6065F39E9C7AC4EEF4FEC7C76833B6F393DA7359BA6C29239C22FDD79C4A8DE3737DED39041317D09CF09838DC644A5392498D8EF26F2C63CB188EAA99EB8746604710D004BD23A87D905EF3361FAB5964352822A3D432DCA246BE7D35D3826F0483D6AFD1649E68CB4B2B5C5E1C400C690553E3254A23C3144D0A91342D0E501A584BE8E5F0CB65E584128AAD8A6561C607E54E93233113F558C93A8C5403A19DC137934AD253EAE1490F1C29527B5D84B19822733F88B3656B91AE6BCEA736E8E5CEE4FE34EDBA3B236B3D357597F2F2CCDB6D3F06F2F0F80F2E6786F727F2A9B1ACB576A665CFDDC91909B2ABD6F26677078DF39730A5B485DA877E4083DBCD4B35B371F7388EDA8606C26DED6C7BF931F6E20536FA0DDC103B9E23162F64CCC08BE41EF821FD619A7B634BB9E0DC251456FC02EFE95F3132D747776C22B7C7F6229C3E8763F79FCE86EF7C9496601BBF6EF938FB1DB284D176899E6B3F42261670A3BF94434F3F9979231C9CD0C1B05D6C99E60C6A949892618BA0ABAE417F90BE3295742C9AA02B295A7F33838E9C4EE431A496F1EE1EE677BF34724389FE46EAB943CF1B12E27FFB5DD43F88D3CB5FEA801E7AC741A9CD48EE48E96A0CF5552BE1A2C10B48203DD5439A156E918EB56B78F4B69F31C35F4BDC2F5034630CD835743B2D7418F5CCD97B31B3E6CD65DDCB4FF3CADDFFC5B4642FF19EB5A4E216EBFD7AB6A5A7B1C11EC71A6334179D75142B6FBE9A9AF66768087B09DC1CB6692A2D8C1C356C4F8EE319731AF9D6DD3973D90CF22B1FA6E7E93BC9F576F1C7F852CEBB6019E38BABB9EFFB97D0981849677C279EC8A539E8EC53199F2AF1EC773FC730C3E0F186B9CC39F244E6BABDACBFE9328C649E3F260E679F639631BE31CDF058A40F6D48DBA2C021A518A5C3213FFAA111F8FB11D004FDF763A65FF1F72030C8ED32F9FDB66E73B98497EDE5AE5FFE82FC40BFCADCA5CE5D3293748635F8B5A33012093EF6A1C3F1C29075ABD7F3F01DB7D2147395E594976AA4C76966BB9761544392334FD81723D7CFF2DFFF9ADE8E4D4AC83F70321465E8DDAC654B318EDD34966587CC67E791265D6B5EE7E6DBEEA1583B910D7D26975CB084D6449E477F730BEB37E4E8721B08EAEB38E5A3872B9794BBAEBD8E5CD9E679AF9165271FCAEE768915BFBC9A4E3FE465770CC79C70243BB566488BBB8D8CE5479AAC83043D38BCF3F760A69FAB1118444013B43E15FEB908A8CD4A318C8DD4406450C612FF44C3A06F5B07B7AD5CA736D862E26A2EAE298E38B3D88C6EAE63BF5D26911814EFDFDAE5F2E4F36BD8DAD183EBBA241C8B19D3C6B3DBA466EA5322431A2ABDE695AFBCC99B9BFBD8DA935765969853C3A449A3D879DA30C6254352851E6519F6D49A3CF7BC51A629E8E5C483A7918C99E48A2EF73CFC1AC592C58431B5EC337734861FB2B9BFC0EF9F594B4F21C3D18BC6322963D0BE653377AF580B569A0316CE644C5302CB2F624BD78612F0575279837DE33A83FEE79E64D5FBEE9AA0AB37B61F8C95FD3F045D7403A57627CE27B259D82D2E2706CA7A4BB633956EB5E87A4825DD1BC076032C2B413E8C1338A66AE513BA93E947D1FD10F53CA9B78B30D340C9209150F6869126B698E94A352794DE695BBD2E16E4307D4F65D859ACC8F144244B3D17331653F60192F4CBF1A4C33C6631A4944830605A24F21E19E98B31B2E46D9B946C7AAA1ABFA8E4B984BEF492BF23E02F0340D110BC26E80FC6C9587947A109BAF2625661471C15A145687F50274FFDB712C01B2C7F2835105F261065543C7236174128823CA1299428C3D243E2D842A051AD5BDED912B356A437DA8E9CB4D5DFC96B65C2521CBA65373449E8D4AACC3CB2C512A17FA90F836B0915A35C689444AA725517F54013476AEF9E8167CB3B55FA749C000007AF49444154E7B14A6508121492298A86419D2BAEDDE2A420C75D882E2FA2B91D88E58A0C0F6982AEB093F50377B89AA03F7021A9AE038A3838EA2019DABC7CDBCE44BC018736D58454853E2D5B49782ABF43D1F21B1C938EC9E8B610AED85C89C8BF19A76498C4431743FD9DB4B649A923CAC2232511E17C19418FF450A50E3ED4F4A206DB4331973510DF435B44A510130349896384922B078ECAEE45933A213AD7DE00A15143BB6DAB0E9551A2031D0A41CBE74BEE2DED87493518A47E55FE6142F63A83AEAEB3FA5FB71A4DD0FF3AACFF4F7E524488831E826FCF3A8A2053E4851D65C1832E2486D84819CAE944FE557907863E86F20B5482A7831D25B20937F80CC96095B6B5D84E49AD3BDA8C145383A10AB088EFC71561470EE4DE9FB90486C494C6935C29CA8496B8A3CB9125305C87C00EC847CDDF2455A51B06067DBCEBE4E22047A904B6E5A8E57971A5E217592A2ACF96B747E5FF4F9E007AD1FF2B043441FFAFE0D32FFE9F1010B294DC7950EE7FF0E9925E469B69CAE8D6083155061DE21B31650C20D9B318CA462D6B31559E10BA9347A47927DE85457C23A9E85F6ADACA7966889695F16B64121B6D4F8A216C48682A47440CC9C8835234E517A6D4DF09A91795F989484F85982571ADDD0A463305351128997427862F658C14D839558291CF97924CD45E281A24D10526B21B5315F3FF0926FDEF1A81BF888026687D62FC531178A7833AA2B1B715F106254CD51FCA84367AE6501FF5DB156BF5D742E4EF54A123DD3D495CFDC8DF50B441947CB564D9EF9EA48C4A0DD11B4B9A3C3805A99C5F877CB785C1230D6B3F72B3520FA155757150DB8631553E512EE3E2FCAD0E5ADE5B7ABB8784A4A26E956853307A44F7074352ADFF5498F59B5729029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D0085429029AA0AB34B07A591A018D40E523A009BAF263A857A011D008542902FF3F264F063D9ED894270000000049454E44AE426082 where `app_id` = '4'; -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000001680000012C0806000000EE2C29AF0000200049444154785EEC9D077814451BC7FF77B94BEF8D143A842EBD188A056CA8F40E52444405C52E62C5F2D995265644451114456C6001A4F7DE413A2421BDE7FADDF7BC7399CBE648729BDC5DB82433CF1325D9D9D9D9FFCCFEF6DD77DE99514024A1805040282014F04805141E592B5129A18050402820148000B4E8044201A18050C043151080F6D08611D5120A0805840202D0A20F0805840242010F554000DA431B46544B282014100A08408B3E2014100A08053C540101680F6D18512DA18050402820002DFA805040282014F0500504A03DB46144B584024201A18000B4E8034201A18050C043151080F6D08611D5120A0805840202D0A20F0805840242010F554000DA431B46544B282014100A08408B3E2014100A08053C540101680F6D18512DA18050402820002DFA805040282014F0500504A03DB46144B584024201A18000B4E8034201A18050C043151080F6D08611D5120A0805840202D0A20F0805840242010F554000DA431B46544B282014100A08408B3E2014100A08053C540101680F6D18512DA18050402820002DFA805040282014F0500504A03DB46144B584024201A18000B4E8034201A18050C043151080F6D08611D5120A0805840202D0A20F0805840242010F554000DA431B46544B282014100A08408B3E2014100A08053C540101680F6D18512DA18050402820002DFA805040282014F0500504A03DB46144B584024201A18000B4E8034201A18050C043151080F6D08611D5120A0805840202D0A20F0805840242010F554000DA431B46544B282014100A08408B3E2014100A08053C540101680F6D18512DA18050402820002DFA805040282014F0500504A03DB46144B584024201A18000B4E8034201A18050C043151080F6D08611D5120A0805840202D0A20F0805840242010F554000DA431B46544B282014100A08408B3E2014100A08053C540185C562B17868DD44B584024201A1409D56C00668C1E93ADD0FC4CD0B058402D7580185E26A8786C26C36330B3A3D3D1D7BF7EE8556ABBDC6D51497170A0805840275470102735C5C1CBA75EBC66E5A0A6A0668B3D98C356BD6E0EDB7DF46DBB66DEB8E32E24E85024201A1C03556C06030E0C2850B8CC12A95EA6A40EB743AFCF8E38FD8BC7933FEF7BFFF5DE3EA8ACB0B0584024281BAA3406E6E2E060F1E8CAD5BB7222020004AA5D2066985C964B2141515E1871F7EC0CE9D3B05A0EB4EBF10772A14100A78800204E881030762C3860D080D0D2D65453340171414E0FBEFBFC79E3D7BF0FAEBAF7B4095451584024201A140DD5080003D68D020AC5DBB1611111150ABD5A52DE8FCFC7C01E8BAD117C45D0A0584021EA68014D09191911503FAB5D75EF3B0EA8BEA080584024281DAAB00F7419305ED10D0AFBEFA6AED5542DC995040282014F03005F2F2F2D820A14340EFDEBD1B02D01ED67AA23A4201A140AD5680003D64C81001E85ADDCAE2E6840242811AA900B938860E1D2A0FD0AFBCF24A8DBC495169A18050402850131520400F1B364C00BA26369EA8B350402850BB15900DE85DBB764158D0B5BB3388BB130A08053C4B0102F4F0E1C31D5BD004E8975F7ED9B36A2F6A2314100A08056AB10234483862C408C780A6A9DEB367CFAEC552885B130A080584029EA50059D023478E940768B916F4C90B19389394E559777A8D6A131CE083B64DA31116E4E7B006B4BAEBD1B369B89496EB306F5DC81011E28F4E2D63E1ADF2AAF0760D46338E9E4B45727A7E5D9045D63DC6460431ED1CA582223D8E9D4F43464E91A3ACE2B80B15080FF6C375CDEA21C0CFBBC252C982960DE8975E7A4956159FFFE41F9C49CA9695B7B6670AF6F7C1FD83BBA25BEB7887B7AAD519F1C2676B71392DCF61DEBA902122C40FAF4DBD05D4992B4AD9F91ABCB67803923304A0B94E31118198FBD89D0EBBC9B173E958F8D34E64E60A403B14CB8519C8607B6A5C2F348B0F7708E851A34639B6A077ECD801B9801EF3D20A84852831F016C756A30BEFD9E38A3A7DDE88AD7B7578704837DCD8A9B1C3FA156AF598F2C62F68D64885DE5D7D1CE6AFCD19761DD4E3F86903E63F7127A242032ABCD5F49C42CCF860B5D0AD58A53F376A909A61C6B2574738EC227B8E27E1FD65DBD0AB8B0F9A375639CC2F3238AFC081637A1C3C6EC08BF7DE88364DA21D027AF4E8D1AE07745CB4171EBF2FD8F9BBA9C125EC3EA4C30F7F14C907B4468F296FFE82AED77963D4DD1543A906CB22ABEABFFC53842D7B7498FFF89D880A7300E8EC42CC98B35AE856ACECC74BF371F6A25116A0771F4FC207CBB661E45DFEE8D6BE6E1B05B23AA60B32FDBD59837FB6685D0FE8175F7C5156F5C6BEFC2304A0010EE80706779567416BF4B8FFAD5F0568007040CF7BACBF2C403F3A778DD0CD0ED0DFBD32DCE1F34A16F407CBB70B403B54CA751938A05F9844167494430B7ACC98318E2DE8EDDBB7E385175E9055CB7B5E5929000D09A00775419F8E8D1C6A57A43560EADBBF551A34B42D596A4A167C7DBD111651FAABA5A2631555283FAF083326BD872F57963DEEF0DFF18B58BCF037BCF9E1F40AEF6BFE9BCBD1A75F2774EADED2E1FD4B337040CF7DF40E4486FA57782E0D703D36EFCF4AEB4685EA7406688AB4080D0B2A758DB42BD9888E094351A11626931941C1D63AF4EF3103F562C3F1D5AAB2239AE8F89A9DF32B75AFAECECC2DE86F5F1EEAB0E8BD279231E7FB1D02D00E95725D060EE8E727DE80D68D232B2C98967B1E3B76AC3C403FFFFCF3B26A39FED59F05A025809E4A80EED0D0A17604E807DEF9BDD2A02198DE79FDA3E8DDB7E355C0ACE898BB014D909BFFD6720C1BDBB7CA809E33E37659807E7CFE5F95D68DEE7FFFAE9358B36A1B9E7BE3DE52728CB8E559AC58FB1656FFBC155792333179FA401BA02B02B02701FA9B978638EC737B4FA660AE00B4439D5C998103FAB9897DD0BA9163408F1B37CE31A0B76DDB26DB821680B636277771DC3FB0336E906141D320E183EFFC5169D0108447DD3E0B770DE98DDB06F44042EB9297C16F3F6EC6D67F0FB25D18B8B5BB73F31164665843F982430218D8291DDAFB1F2E5F4C63FF26AB975BD0E74F27E3D8E173B63E7AE7905EB0B7A0A565D2714A3F2C598BB57FECC4F36F4E46A3A68E43BEA40F01B7A03F98719BAC41C227E6FF5D69DD2A0BE82DEB0F302D67BE369155F5F285341CDAF71FFB77EF9B3B62E7962338B4EF349E7C691CFB1B69F4DF894BA574B37FD0A5BAD1B1FA0DA3D1BE4B82533CE016B42C409F48C6DC1F760A0BDA29C52B77B20DD0137AA37563C72E8E7BEEB9471EA0E55AD0135E5B252C683B40CBB5A01F7CB76A8026984E9E3E8001815B7BD46DC8A29BFFD5533677C43FBFEFC4C7EFFF883B87F6868F8F1ADF7FFD0F1E7C6218EA378CC27BAF2E45971EAD10DF301A17CF5DC1D18367F1C25B9331E7F56588AA178AD6D735613DF14A5206FA0FEE692B73D3DA7DB8782E15DE3E6A767CE4845B6C8096FE5E996E6C03F423B7C9B2A09F58E07E40FFFDDB0EDC747B17787BAB199CC9F20E090B64B775DBDD3D30A6FFF336F7C6B143E730EF8D65886B1065D32D3B330F0F3C5EE276A0B620D714E9A6D3EAB1F2BB7F31EB7F93D0BD57DBCA4875555E0EE8252F0E76580E59D0F304A01DEAE4CA0C1CD0B308D00E2C688A831E3F7EBC3C403FF7DC73B2EA39F1F55F04A025809E32A0936C17C743EF553E1A81FB8BDFFD74067EFD61133A7469812ED7B7C23B2F2F61D6715474A80DA66F3CF725E21B4661D4C45BA15279E1A7EFFEC581DDA7980B22F9523A264DBB9BF9630946CBBEFC9B41FFF79FB6E08917C6A25E5C046BFF3E6DEEC7E29F5EB49559969FF9D8A1B3D8BCEE00EE1ED69B01BFB28903FAFD876F9505E8273FFCC7ED16B4F41ECA728D48DD1BE41AD9B5E5281E7A72984D377BF707B505BDE8487B473EFFCAE8C701FDF50B831C9E46809EBF6297B0A01D2AE5BA0C1CD0CF8EEF250BD013264C700C68DAF65BAE052D006D6D4CEEE2900BE842AD01D39C00340DE82D5EF82B62E222406E06EE4795BA23A450A03AF2630489C0203F761E250E0C02F4DB2F2D4154BD305B0F3D7DE2522940A7A76663E13B2B70E1DC15DBA0E2E675FB997F77C6ACD155EAD91CD0EF3D7C2BA21C0C12A6E714E1A96A06340D1E92054D2FAFFB1E1EC85E84F680FE74CE4A844786D8EE9FBE3CA4FE6B01E82A758D1A7F92DB002DD7829EF4BF5F85052D05F4DD1DD15BE620E1B4F72B1F2E26B5BE08D0DF7DF117D46A2F141668B1E9E867A5FCC55501F4CE2D474B7D9AD31342B0914671F0688791B73ECB20E432404FBF459605FDD4C2B5D56A41930606BD115AAD1E1FBDBB02C3C7F7C3C3E3DFB101982C6872138D9BD2DF06148502080C2A8948A1B6D8F0F75E787929E11FE8876F7E7D05FE01BE4E03885BD05F3D6F1DD8AC28ED230BFAC7DDC2827624940B8FDB007D4F4FB492E1E2983871A23C0B7AD6AC59B2AA79EF1BBF09404B007D1F01BA7D0387DA15E98C98EE24A0E922F4E09375F7C33F6F22363EB214A0C9D25DF9DD7ACCF9E2090685FB47BECE3EB3DB76688A796F2CC733AF4E60FF7E78C2BB6C00913ED1673FF519C64FBD1337DDD6C5760F0579453640E7E514A2B050C38ECD98F81EE67FFD14E6BFF9BDC310BC8A04E116F4BB04E8908A67A466E46AF07415014D7EF6990F2D6083AB238A7DE79306BF82662DEBE3A36F675E15C5C1EB4CE17959C503AD4B3F5F83E1F7F4C343E3DEB2017AC35F7BF1F64B5F63C28377D974532A14C8CB2DC48A6FD6B1A8116A8BF65D9AA3792B6BDF50AB55888C0E65FFB67F913AEC3C920C1CD05F3E37C0E169FB4E5DC1020F07340F79B4BF9994A40CD6BFAB2365A4E5203C32184AA5D2E9CB7140CF244037B4BA0DCB4B1466270BD05BB66C815C404F7EF377B7039A0669E8D3BA4D87A66CB08B125992F4F9CD53CBB68D9845420FD3C5B329A5A21B9C56594601DCC571DFDD1DD0EB3A398036E0E10F2A1F2E46D6EB82B7BEB745177CFBF91A165130FBBDA988880AB10D68DDFFA875D0887CC63CBA80A2067854023F8FF2BCFDD123B63209363F7DB7BED41DCF7C75227B0950993F2D5DCF2C414A0BBE7E1A6B57EFC2BAD5BB5D02E877A6F59305E8673E5A57250B9AEA4C9114DF2E5A53EAFEE83EF8318A78E1AE1F9E895C43F3DFFA9EFD7ACF94FEE8D1A71D9E796801EE9972872D0A83AC68D288273F7F5FCC787614D3EA9EFBFBE3C2D9142C5DF42708349422224370EFF4012CE285DAA247EFB655EAB31CD08B67DDEDB097EE2740FFB4C7E516344135A938228857A2B2B1F0FC3CEEAAB3BF191A0BD97CEC7387F7E88A0CF70E7D950DB6F3787867CAB4017A5C225ACA00F4A449931C5BD004E8679F7D5656BDEE7BEB0FB7039A20439608B712A962E4F37CFFB5A568531C6D40801E36AE2F7B00C822E10F9DAC9B7041260EE8C97711A0EB3B2CB14867C02373AA168DE0B0F06ACC705BD78731F5B121CCAAAC6AE216F4DB0FF59505E8991FAFAF32A0AB5AC7B2CEAB4C1C7459EE266E5D3B53270EE82F9EBDCB613104E80F57EE7539A0798865E36671B63AF4BCB13D8B82A96CAAAD807E66ECF5B2007DEFBDF7D62C40D36729019A4299468CEF671B88224093EF930F4CD15B8F06CECA02F4AAEF37B24F54F209F2B0B0CA761C47F94B00DD5E9E05AD35E091B9351FD0F4703AAB6909A06F466488839984B94598F9F1BF350ED0D457A571D2D49F125A356031E8CEA4CA009A5C1C0BDD0468BA07693F900E60D331FAD2223F3D256968287DD11C3D74D6F6770234B9CDE86BA447EF76CC0547892CE8D53BE661C5376BD9EFD263F405A2D71BD8DFA59A96F5DC1337C87DB17FF729C604AA0B31837FFDF4E9DB116F3CFF95CB2DE8A7C75EEFD0C541617693274F760CE8CD9B37CBB6A0A7BCBDDAAD163401E0ECA9CBE8757307BCF3F237F86DCB07AC21E402FA9BCF56B306211FAB8FAFB7D371A7E53D4C1CD0F7DE49809661416B0D9831AF6AE162CE3CD09E782E07F45B0F12A01DFBA09FFDC43300BD6DE32190A52837D1E4A0DC9C02963D20D00F9D7BB4927B6AB9F938A017CD74BCDCE8FEFF52AB0DD0524389A25FB41A1D9B364F69FBA6C378E695096C22D0D9FF92D0B899756213BDAC6EE93C1D770CBC9EB991C828EBD3AF23DAB46FCA004DF1E76495EFDD71823DFF335F9BC0DC6B143EFADA9C075859BFAED8CCC652522E67D89EFBA2221D2E9EBDC25C74F4E2D8B1E908068DBA8131A16B621B3C39752E1B68A7AFC0437B4F83267CD1CC5257BA389E1ED34396052D1BD03367CE94D579EE7F678DDB01CDDFCED2CF1F29A0C9274B6FCB75FB3FBACA829EF5F04216DF2B9D7127EBC62A9989037A52FFEB6403FAD1F9558B46A864D53C3E3B07F49B0FDC240BD0B33EDDE01116B42708CB01FDF933251124E5D58B00FDD1CFFBDCE2E2E0CF28BFB614D0347EE4E7EF638B6AE1CF31195FF6E70DBEF1297CB8E419D46F14CDBE9CC9974DE0264053E44BE3E671A081EAB96F2CC3CDB7776183D78F3D3F061DBA24B0B5547EF8FA1F982D16DC31A827222283995126AD0B019A5E8E8347DDC88ED158D6E3F77D80FFCD7B88C5B0A72667E2F12973F0E9F2E75C0AE8A74677770868B2A0A74C99E2D882DEB46913E4027AEABB7FBA0DD06471905834238B3E9FA8610BF28BD8E83901FAC9FBE7C2C7570D8D468F795F3EC91AC9DEC5A129D2E189297370FE4CB25B17B69102BA673BC70BF6D35A1C8F2DA8FA609727C0C15575E0807E63EA8DB200FDDC671B05A08BC5E780FEECE93B1C360701FAE355FBAB1DD054B1579F5984ED1B0FB13A92AB912C54724B7C3AE767AC5EB9051F7EF30C9AB5A86F8BE7A77CF680960E12F2630468E9809E743D95E9F7BCCDAC6ADABDA8459B866C5C8A002D758310A09F7B6461A9312B770C123E398A00ED78C1FEFBEFBF5F1EA09F79E619870D4E191E78EF2FB7015A0A615E99827C0D1BCDB5777194F5E6B6BF81F2062064DDA8834C25806E87C4B68E01ADD1193D0AD0B48A9B5E6760964E75A71240DF8008073BAA64E669F0DC679BAA0DD0641048E3995DA90DC55693B5C72393AA523607F4A74FDDEEF0F403A7D3AA0DD004C64F3E5889773E7EA41468A992653D877C0C497ACC1ED07FEE9ACFAC5FD26DDE9BCB59E40B8FCFA7095B46A309BFADD884ECAC7CFC779C9641B07E39DB5BD0F6809E396D013EF8FC31F8FAF93057CC03A3DF642F0C57BA389E1CD50D2D1A540C680AB3930DE8A79FB6861E394A0FBEFFB75B004DE172BF7CBF914D9290CE50A34F9D4F96CD6230910E12960768EA28B9D956BF1F9537FBFDA98E6EA94AC739A027DE41802E19CD2EAF3002F4E31F961F8D409F6B278F5EB8EA749AE8E0EC023B65D549CE92A2144E458996E67465E280FEDFFD7D6401FAF9CF373B05687A60AF2465DA6E81D6C7E08351F6F745911A3FFCF3161B50A290380A97A39996AE986462BF7A5E5534E580FEE4C9DB1C9E7E9000FDCB01B758D01466278D9D973E6B149AE9A5F242A32631AC8E14D14216B4343C8FE7AF08D0348393BEA429AC94C2179FFBDFBD6C708F7E28D69F0661972E5AC3BEB8932EA6A349421C0B67A4D0492ABF2C0B9A9EB3E9E3DF61FE6A0AA124A690CFFCA7F5EFB814D04F8C244057FCDC10A0A74E9DEAD882DEB87123E402FAA10FFE710BA073B2F3F1D1BB3FA25BCF36B8F5EE1EB6CE478D1B121A88BB87F7C6A963174B1DA34C74DEEF3F6E61B1A7947EFC761DCB47C97E9949873DBA121938A027DCDE5636A09F5858FE6017F9C2BEF8F05756035A458DD6B8A0CE467E33BE825A25AAE730AB1C4097E5337458B08C0C1CD0AF4FE92D0BD02F2CDAE214A0E933F7E09E53A8176B9D3840FD69FA33656F19458026838056AE1B30BC0F830B4513B9624CC39580FEF8895B1D2A4D80FEE4D7832E07F4AEAD47B1F68F5DA5AE6FFFAC499F43AEB7F43C9A424F3E609AD0C3DB8216986AD834062DDB3462BA4F7B7A386302A55BEEEA6E1BF07FFFD5A56C012A4AD7756ECEDA89D2A205BF202DC5BAA175C326318C0904E0E8D87056264F3C469D7EA7F564766D3BC662DCC9A27636F138E8C747749505E8071E78401EA09F7AEA2959759B3667AD5B002DEBE21E94C906E8DBDAE07A9916F4931FC91BECB28FA1CD4CCFC52F3F6CB4DD3DCD0EA45956146E44FFA6639DBAB564032CF610A0CE48D623F9FF78D817851AD9039A9F4717A1E3741E9FAC41D6E688F1B7300B837C783CF489F2F2BAD0BF098494DAB66FCA46E5CB4B1CD0AFDDD74B16A05FFC62ABD3802E2FC48D5C67FB779F6455A5A9DB836F78128B57BEC4264591AB833468DBBE09C2A3426CE162A4DDE6F5076CB7C7A77C93654779E918856F11D4794818ADDB617FAC2ADD995BD01F3D6E5D55B0A274F04C3A3E7503A01D5DB72E1FE7807E6C4417B4A8EFD8827EF0C10705A0DDD16138A0C7DFD64696054D83844F7D2C6FB04B0A68F291CD7EEA73A45FC9C6B07BFAB25B2178D034E321373D8D81236E004DDAA185E709C434B59816463A7EF83CB3BCC982F874EECFB8636022FBAC238BE4E63BBA62E0883E367F1E8519D1E02A9D4729F97206060CEB8D4FE6AC64BFD3570D7DCED267FE0B8F7D8C944B1957D585CAEDD8AD05CB4F1318DAB4B72E5F5A56B2017A722FD0EEDE15A5CC5C0D5E5CEC1E40D3A0F49CFF2D6383CD34A87478DF69F629FDC682E9EC339A2C673ADEBD671B6685D18C437A71D1025364155248187DF5B4EFDC1C4FBC388EADDB4DED41D65BFBCE09AC2C5AB294DC547C6D6EFB78E1CAF6CD4A01FA741A3EFDED90CB2DE8CAD6B92EE5B7017A78175916B42C406FD8B001722DE8E973D7090B5AB216C7F8DB5AE3FA368E7DD03493F0E98FE50D76D9AF84F6C0E837F0DE678F21AEBE756D824726BECBDC371307CDC6A2152F3020D0834FEB418C9C782B03299FF54680FEF7AFBD78ECB931080E0D002DD04FEB4A48D79126F74A504880CDCFCA0770CA0B8BFA68E9B357D565E4ADB3644FCDE5807E75724F5916F44B8BB7396D41FFB96A1B028A1733E25B7DD157C3B18367F1E093C398B57CE6D465B628120734696CEFE2208B9BD6D97E7AF67836D59E26634C19F13AF361523BCD59F4B86D09526A272A4B3AF8E42A402F7CCCF14C4EB2A03F1380AED6F70307F4A3C33BCBB2A01F7AE821C7163401FAC9279F9475230FCF5B2F002D01F43DB712A01DEF2842807EE61379835DF680BEBBE763A506A9C8DA5DF6E7FF3079E8ABB65042FB075F0A68FBA541ED17FAA786A7B5260E17EF2012131FC966699605E81BDA4E454060C9AA6CBC2E6CD6E6ADCF22F1C6F678E99D2915F6250EE857EE4D9405E897BFDCEE34A0695D12AA1B250ECCB27CC2A48D2340DB6FA3C50716EDF779A401A9F1035F8682C646D6BDCDAEED2A407FF8A8F56BAAA24480FEFCF7C3C2827624940B8FDB003DAC131264B838A64D9BE618D0FFFEFB2F9E78E20959D59CB1608300B404D0E36E69851EADADA3D515258DDE88999FCA1BECB2073459753470651F12275D1BA22240D392A28FCE1A0DB5B70A85051A0CEF37B394056DEFF3AEC8821ED66F26BEFDEDD572C3F3E42C45CA013D7BD2F5080FAA7809CEAC7C2D667FB5C3694097E583E6CB864E796410546A158BB9A7A8024780FE75C5263CFBFA24162E47101E7AF3332C4AA1BC8D78ED978CE56B7A3BEA33651DE72E8EF98FDCE4F0F4C36733F0F91F4704A01D2AE5BA0C1CD033867644F378EBEA85E5A58282024C9F3E5D1EA01F7FFC7159B57CF4C38D02D0A500DD12DD5BC903F4B39FC9F3A54A814900A04F685AAAF29199236D6D447EDE817D9E90654193CFF4DE690398AFF4E907E723BE41149B8DC5634A69F49BA6DFDAC2A29EFFCA664167A466B3C819BA1E01FE9E012F213C22F8AABAD0C4204AA78E5F446E4E21C64E2E3F4E9703FAE5893D6401FA95AF773A0D6836D5BA78F7715AFA9366A8D13E84EFCEFE0663EFBB831DFBE0B5EFD804277B40D38067C3C6F5D8A0DF8923E7F1FCA31F23B14F3B0C1A75235E7EF233B69428C5D1DA039A5665A45DC5695DE91FBF5987573E78C06516F4BC876F74F8BC12A017AD3E2A00ED5029D765E0807E64480759807EF8E1871D037AFDFAF5900BE8C7166E128096007A6C3F02743D872D4C71D0B316C9F3A5528812ADDBD034C13A018606ED687ABB343DF3CA782C78FB079B3B8116A7090B0F66DB6151A2995CE46AE0162DED9F476B1A50A20D66A9CC75AB77B1B5A0297D3E6F159B8545897CDD8F3C3B8AAD9D4031A294E87A6111C1A0BDF7688D14FBBAF0BFD1E0202FB33C5138A05F9AD05D16A05F5DB2CB2940F32552797DC22282D8DA1094A4C7482F02368567EDDB7982ADD5406D21D58DCEA1DFE9EF3C7197CEA2F9AB986E3C714DE9CB87F290AFFF8F9FB7DAB62D73D869CAC8C02DE8B9D36F7078FAE17399F84200DAA14EAECCC001FDF0600274C98E3B655D832CE8471E79441EA01F7BEC3159F57CFCA3CD02D012408FE9DB4236A09FFBC2395FAAAC06B2CB24C7E55095729D398703FAC5F1DD6401FAB56F763B056867EAEACA735D19073D679A35F6B7A244805EBCE698B0A01D09E5C2E31CD0D307B59705E81933663806F4BA75EB2017D04F7CBC45005A02E8D13727C806F4F38B9DF3A556A51F7932A05FB8A7AB2C40BFFEED1E01E8E2C6E716F4070FF576D81D08D05FFE795C00DAA152AECBC0013D6DD075681E57B1054D330989BB6BD7AE45646424D46A3514B4771A0085C964B25086EFBFFF1E04E8471F7D54562D9FFC64AB00B41DA0BBB574BCB335B9385EF8D2395FAAAC06B2CB44332D0BF2346CB5304F49DC827E7E5C175980FEDFD2BDB502D034E188260C39B3951307F4FB0F5A3700AE281D2140FF754200DA91502E3CCE01FDD0C076B2004DAE658780A60C7201FDD4A7DBE0A50482839CDFBFCB85BA547B513ABD05451A0B46DDD41C7201FDE257BBE0AD0602FCEBB676451A33747AE0B9B19D6501FA8DEFF609DD8A7B787E81194613F0DE033D1DF67902F4577F9F84BF9F023EDE56CB4C24F72AA0D15AA0D559F0D080B66826C382A6E83959802667B59CF4F9EAE3B8946E5D8CA8AE275FB51706F76A82368D1C2F26A4379AB168F5715CC92EAAEBB2B1FB0FF055B34E1CEC6FDD73B2BC54A03130C8A4E55837AE150908F6F7C653233A3894E2426A017EDA721639053A87794506D729E0EFA3C23DFD5AA07E5440C57DBBA080CD3F7108E87FFEF907E4AC1649282014100A0805AA47017231D30C6E5980966B41574FD5C55584024201A140ED5680C2EC64039A02A645120A080584024281EA5180004DCB3C3BB4A0FFFEFB6F0840574FA388AB0805840242015280004D3B59C90234CD09AF6DC962014C6633BB2D15859E882414100A08053C44010234ED05EB10D07FFDF5175BB4A3B6A5BC223DD6ECBE8CD8707FF46A13CDD6E51549282014A85E05B47A13FE3D988C2317722ABC70937A81B8B9631C22829CDFD9A47AEFB06A5723403FFBECB3E5039A32FCF8E38FA03549F57AEB1632B52529BD5468D5EF3E04D76B06A3AE0817F7AD46FA4C14CCF10000200049444154993DB058AC16B5484201A140F528E0A5F645E36E0311D5AC6B8517CC493E89F3BB7F85362FBD7A2AE60157E9D2A50B7EFBED374444445C3D93B0A8A80857AE5CC1E5CB97919B9B0BA3D1E8015576AE0A168B0539857AACDE978E941C03D4DEFE0CCADE0A3D125B84A06D832078ABBD9CBB48359D7DF6EC59346DDAB49AAE563B2F939797C7FA757878C53B2C7BFADD67656541A552213838D8D3AB7A55FDB40613FE3D928993A96604453580B76F60A93C26830E7919971017A0C7CDED221011E45DE3EEB1B215A629DD7E7E7EA857AF1E1A346880D0D050D6BEB6A9DE66B3D9A2D3E9909393036A7C82B5C964AAEC753C2A3FC139293D0FBFEFB880139772E01B148EC0F03818F51A146426C3D7CB885B3BC723B16D7CB5429A560B94BEFC9A356B06FA71946EB9E516F6F9E3EA643018B067CF1E242626BABA688F2BEF8F3FFE404A4A0ABA76EDCA340F0A0AF2B83ACAA9D0A2458B101B1B8BBBEEBA4B4E768FCA43CB1CFCBCE50CF69DCBAF10D04D239418D2BB19EA85F97B54FDDD55191F1F1F84848430EB392020004AA5B234A009C8E4DA2050D3434B80ABA989EA7EE67206BE5F7B08074E5D81CA2F148111F150AAD4CC82D615E4A030FB0AFCD5660CEFDB1677F66A536D03872D5AB4C0F8F1E36DD2D29BF3EEBBEF46AB56D6A541CB4B74DEA953A7D8E173E7CE21232303DDBA7573BA89C8AA1C3264085B83A536A7A4A424B6D60C7D467EF9E5972CA4A96DDBB615DE323D0B6BD6ACC1E0C1833D4A9AF7DE7B8F595AA3468DC292254B30618275B9D48A12F519D2A0776FC70B2B392ACB99E3851A3D16FDBA1B9B0FA75408E8B6F50370DFC06EA81F5DF12243CED4C553CE254B9980ECEDED0D5F5F5F663DD3EF3C29C882A65F086C66B3B9C6C3F97C722616ADDA8EDD472E42E11BC22C6782334F0CD285B9CC920EF00126DDDD03836E6A0F7535B83BA2A2A2909E5EE2577BEDB5D7D0A85123870F99F43C727710A0BB77EFEE741FA3AF26B2CEC98AAECD69E3C68D0C665F7CF105860F1F8E175F7C111D3A543C459AB4A1BCEEF87271466B699F910BE85F7EF9059B366DC2FBEFBFEFCCA59D3E37BF488705CB3760ED9E0B1502BA6393503C32FA46348AADD9EEA8CA08C6AD660236776FD0F90A4BB1B95C93AD662EC4C5942C2CFC6113761E3E0F957F38FCC3EAC14B75B51F8B20ADD714203FED2282FDBD30F2B6CE18DBBF1BD42AF7FAA4C3C2C2909D9D6D6BB7575E79058D1B37C6C48913D9DF6EBEF966DBB1499326D9FE2E3D6FCB962D3873E68CED98F43CB290E801A644AB6351E84E4C4C0C4E9F3E8DAFBFFEDA768C5F842044D7DCBF7F7F997D495A1F8A8F1F366C98AD9ECB962DC3983163D8EFD263F6F7C10BE6F9695B359E162E5CC840C92DBBF2AE575E999F7FFE399A376F5E4A37FBBAD0D8CAAC59B3D82879CB962DD917C3CB2FBF8C8E1D3BB27197B7DF7E1B77DC7107DE7AEB2D562D5E669F3E7D70E4C811964FDA1603060C6071AB94E83CD298D2FDF7DF8F3973E6808E539D08EE543EFDFCF9E79F6C0088121D979EC7B528AFEDEDDB972C2CDE67487FD295A79F7EFA091F7EF8A1ED77D29ADA9EEE99DA9AEA4575A47BB2D7D45EB7323B84937F2C28D261EED2F5F87BF7B90A01DDA969181E1BD7B74E019AA49582994B6D03B493DA5FF3D3D3B3F3F1C6177F61EFB18B5007109C63A0F42A5957D5BE82F442A2A88E9C943308095063CC1D5D31EAF62EF056ABDC762F3400400F0A4FB367CF660F1B01A07DFBF6F8F5D75F6DC7BEFAEA2BB46BD78E3DE8D2F356AD5A8503070E80CEA54470FBF6DB6FD9BF09DE645DD3DAB237DD7413A80C2A9FE7A773A589EA42F9E8B87DA2F36813619EE8C1A7BA5C7FFDF5AC23F5E8D103CB972F6787A5C7ECCF7BF5D557D93993274F66A3D3524380D793DC08655DEFB6DB6E03FD945726E946EE1FFB7AF2F3A86EE7CF9F67FAF23C742DD28E2045C7C8BD44C709E094A64C9982952B57B26353A74E65F748FAD3CF9D77DE8977DE79078181D6C12D02AF56AB657A5379348643962A7DAED2A42FFA3B819F804CAE2C4ABFFFFE7BA9F3E86F15B5BD7DFB1248E7CE9DCBEA4CBA503D29D1F5EC279A51DB926B8CFAC18E1D3BF0D24B2FB117367D4A57D4BEEE7A00F20BB5950274E3B8087755A5C6945B2B00AD3718F1D8BB2BB0FFC4E552C2FB06472224BAD1558DA1C9CF4241C625984D25D12AC101BE983CB82786F5EB08959B2C697AC8294A8627B2E438682B82774580963EA4654196E05B1E842B02B47D59041B821B954580B6076D45C7E81C3A5ED679FC5859D793739EA332EDF5B107B414DE540702AD14E652F8F363D41E94087C04480E7CCA5BD631CA2B6D43E979F6C7E877E98BDBBEFE151DB3D7906B432F66AA1B819DA78ADAD05DF41280AEBCB2351ED006A3096F2EFE0BFB4F5CB2DDBD4E6F445EA19659D21501DACF5B89A08092DDA4C382FC316DD40DE8DCAA4129477DE5652DFB0C7B084B73791AA0093C04489EC83A240BDF11A02BB2842B826959D7231FAB23EB9ACA243FBE347DF6D967CCF2A6E46A40930ED2411C7A71710BDA194073B0F3FBA0C140FA62910B688ABEFAE8A38F4AB9382E5CB8C05EA4E501DA5E37FA5AA0AF1D772501E8CA2B5BE3015DD62D6F3F74167397FE8BB4426585801E7B47674C1FE57857E4CACB7A6D004D616464A1F3A810FA44A741C0EDDBB733DFA37DAAC88296C2947CDE04215AB3D611A009066421F274DF7DF731BF2BA5B2CAA4E3F6D635BF1E3F26B74CFBFBA3D03A1A202360F3E44A0B5A7ABD8AAC6BCA57190B5A5AAE14D0D4BE34B6402E137B17873D84C9DD71FBEDB75708E8EA1E771280AE3C4904A03D04D0349045C1EA3C113CC9E749D11A15B938C8C7CB272D9015D5B97367F600F35491D54ED7A070330A3B9326F21793BF92E04089C2F17EFEF967067947802690F3F3789904688A3D961EE365929B87A029F7584565DA1F2BEBDEE5029A62536910977CB66455D2CFBBEFBE0B2F2FAF5216343FE60CA0EDDB9EEE83BE00DAB46903FBF6A5AF98071F7CF02A401F3E7C182B56ACB04DC4A1496714B54110961E23ABBC7EFDFAA5F4E6BAF16395C788BC3304A0E5E924CD25005D8D80FEF8E38FD974FAF292D447C81F7CCA2B3D8FAC4B0AD5937E8AF2F30882DC5A9503688AF5A5B2ED13019AA0CFCBEDD4A913CB42E5D3C34D7F976E2E4C616CFC5859804E4B4B63EBDDD22C3EFB32A93C3E59A7BC63E59549EBC6C4C7C797F2AD523D49031AE82398D25642D244D114A41D852ED24B822C4D02134F4B972E65BF13A00972B404827D5B906E3CF163D2F3E8D8B163C758F9BC9DA46D687F8CF24BDB5E0A68E931D289EA4D6D43F05EBC78311B7CE589A271A82D28D1DFE9386F277E4C0A61FB6B0A40571EA0EE3E4300BA1A01EDEEC6B42F9F5C1C83060DAAD65967F67E66AA1359AD04037BCB5AAE1EE595C907E7CA2AC7DEA2957B2D91CF7D0A080BBAF2DA0A40D762405714E151F9AE22EF0CFBC13E3AEBF5D75FC7E8D1A3D92CA9AAA4F2CA1C3972240B692B2B25272733F7847440AF2AD716E7B84E0101E8CA6B29005D8B015DF9EE20CE100AB84F0101E8CA6B2B002D005DF95E23CE100A3850805690A09983455A1DF8D23E851A1DBEF8653BB61CBA5CE14CC236F583D89C84FAD1D678734A34812C34C8AFCEADE52E002D002D60231470B9021A9D01BF6D3C84EFD6EC416A665EA9F2553EFE15025A5F5832998B4EF4F351E3F6C4D6B87F586F848704B8BCAE9E5CA000B400B427F74F51B71AAC8046ABC7AF1B0F63C96F3B909557C4965EF0F60B8297B70F5B0258A52E992446B769361940B37C690906A34EC39607A62DEA06DE781DEE1BD2ABCEC1993411801680AEC1081055F77405B43A03D66C3D8A4F566C46A1DE8280B05806E7B2160662F762B140AF2D4061560A60D4606CFFAE187D47578404FA79FAADBAA57E02D002D0A53AD60B2FBCC05671E3891645A28914220905AAAA804E6FC0BFBB4FB1D9BD053A335B02D82730EC6A485B2C30E88A509099C4E03CE68E2EB8E7AE1E08F4AF1B7B1396A5AF00B40074A97E413305690BF8B8B838F6F77DFBF6213333F3AAD986557D58AFC579B4DE35CDC0A3597972122D35BA79F3665BD64F3EF984E93170E04039A78B3C6528406BE66CD8730AEF2F59C72C6982B477406809A46975498316F9E9976C701E795B973AE9D690CA27002D007D15A0F932A574A0AC85766A1A81681123BA27E91A2115DD83FD14715A5294EF7A51D3EEDD93EA4BAB4E12A4DFFB7A1D8A0C1604473580DA2F9841DA6CD423E7CA39580C1A8CBAAD33C6DDD59D456D94EB0AF1A41B73635D04A005A02B05689AFE2CDD3A89A607D3BA1D34FD98AF64C757C12BEF184D7FA6058CC8A2A5A9D43CD17AD634F59BA648DB1FA3C92A044A822C5F5C9FCE23F8F2EBD2BAD4F46F5E26ADBD4CB0A57D086991FDC8C848765D5AE7E2E2C58BB8E1861B6CD7A6C587E8CB81EA4CEB3C376CD8904DD3A615DEA44B7CD209E402E2EB3BD3EFB496344DADA64933A4034D33A775A5F9312A9BD66016092048FFB1F90816AFDA8EEC023D82A21BB2C1C29C2B67A18601FD7BB5C1D4E17DEAACCFD9BE8FD46A405FC9352120AC6401227EF3FAA23C14E5A6635CFF2ED5BA9A5D4D784009AEB4180FCDC2A374E2C409B6D12D2D144FC97E76225FCF81AF97215D6E54EE31AE0B2F5B7A9E54B3B22C613E0D9C8ED16C45BE79009DC72DE1B2CE23C012C079E2D3C6695A7A454BBF4ACBE5E71280F992A3345B927EA7CD5D29D1BFE947BA746B4DE807EEACA334042F334F0B28550CCE753594AE22AD6B35A0690BAC8AD23D77751780B6138840429626ED1AC2D73E96EEC44210E59B0CD0A9B4D810ADB8C701CD77F8A063F680B63FB66BD72EDBBACD949FCAA53C54261D236B9A438EFE4FA0A5414C6E9DD2DFEEBDF75EB6625B5910AE08D074AED4E541F748207516D0F67017802EFB09E42178DFADD98DACDCC23A1D4A57E7007D29351B3B0E9D436E81A64240B74F8847F776D6253545B22A20DD2A8BF6D3A30132FAD4E74B98F22DBAA47AD131CAE3C8BAB60734B912A4ABF211DCF8EA6B748CB669E289E04D10E63BBB48AFCF8FD9FB992B0234B949C865C293B46C672C680168F94F9246A7C71F9B8FE2F2956C4C1C783DC282FDE59F5C4772D64A0BBA8EB49D5B6E530A68BA80FD20A1A32DB66815396E713BB2A0A97CE9B2A5E5DD90D48D51DE605F652D682948D7AF5F8F69D3A631DFB6B0A0DDD2ADCA2D94763FA2088FBA1C4A57E72CE8EAED62B5EB6AF680A61D5A3EFDF453B6EEF2B871E3D83AC763C78E2D75D3B4E03F1D237873570165A0C1383A466B18DB839DD6B4A605F0C99DC11385B2AD5EBD1AB4B6321DE389A04CE0A7813EFA37F7EFF2E3B4EF624580969E479B0ED00EDAB488FDF8F1E3591134E8497E76FA122040F36334B848D7B21F24DCB66D1B033A4FE472A1DD5FFCFCFCAEF25F0B1747ED7A3EAAFB6E84055DDD8A7BF8F50866FEFEFEA596E9E40BD4D322F694A43B93D3EF04263AC621CC8FD3DFE818258ACCE03BBF7009341A0DA48BDF53281BE5A1BFD1319EA4FBF5E9F57AD0CE31D244C709B0748CEACE13BD5C424242D8AFFCBC808000B6BBB8F43E28FA82AE4D0BFC4B8FD1801FF9E2EDC3ECC8E72DDDFC97AEC9973D955E93AE4175A563555D6AD5C3BB8BA89E9B15B001BABAF72773F37D89E2AF81024D9A34C1B973E7AEC195C5258502355F81B262BE15665A171080B1A00085972EC16234D4FC3B1577704D141833660C962D5B764DAE2D2E2A14A8B90A28A00E09464043EBEEF4525033409BCD6664EEDD834BDF2D857F5454CDBD4F5173A18050402850C314B098CDD0E9F468F7F26CE60ABB0AD0E49FBBB26533F4070F2261E4A81A767BA2BA4201A18050A0E62A60282AC2DEB91FA0EDDBEFDAC67F38A4152693C9420319C99B364271E23812460840D7DCA61635170A08056A9A0204E8DD73DE478BD7DF6083DA522B9A019A46EE2F6FF817EAFF4E2161F8C89A767FA2BE4201A18050A0C62A60D01461D7DC0FD06CF66B080F0F679144A52CE8FCFC7C0668EFFFFE43C2F01135F64645C585024201A1404D53802CE85DF3E6A0C9CBAFB065162A00F429240C1D5ED3EE4FD457282014100AD458050C1A0D76CD9F2B03D0A708D0C36AEC8D8A8A0B05840242819AA60003F4827972007D12094304A06B5A038BFA0A05840235570106E80FE7CB00F4C91302D035B79D45CD850242811AA8001B245CF8A14C400F1E52036F515459282014100AD44C059805FDD14219803E71020902D035B39545AD850242811AA90003F4C7B2007D1C0983E459D05F6C3E89E5BBCED648416A4BA5BB3589C2CCFEED11E2E75DE55BCA2CD062E1FAE3D8FCDF952A97214E745E01959712A3BB37C5C49E09552EEC485236E6AF3D8A7319F9552E439CE8BC0271A101987A634BF46A7EF5767B6595CE00FDC947322CE8E3C791307090AC1A26BEF507140AC0C75B212BBFC8E45A050C060B4C6660E5437D111B625DD2B32AE9545A1E262EDE0C2F2F40AD126D59150D5D718E566741427430964CEE53E5E296EF3987796B8FC15B0D2895A22DAB2CA41327D2AAA03A3D705FEF044CE9DD42564906AD16BB3EFD580EA08F2161804C40BFBD1A71D15E78FCBE60599510995CABC0F7BF1762CF613D563E78B3F380FE720B7A77F5C1A05BC59643AE6D25F9A53DFD663612A283B0E45E2701BDEE381E1C1B88668DAC6B5E8B54BD0A24A51A3177713EEEEB458096F73564D06AB0EBB34F6500FAD85124DC3D50D61D25BEFBA700B42CA5DC93C906E8A9373A09E87C4CFC7AAB00B47B9A4976A936404FEC25FB1CFB8CCBF79EC7BCF52704A0ABACA0F327DA00DDB339A6F46A2EAB4066412FFA4C06A08F12A007C82A34F1BDBF04A06529E59E4C3640DF7F83F3805EB24D00DA3DCD24BB5406E8A8202C99D853F6395703FA02E6FD2B005D65015D706209A09B614A4FB980D660D7178BE400FA0812EE9209E8F7FF168076418356B5081BA0A7F4711ED0DF6C1780AE6A43B8E83C1BA0272456B9C4E57B2F60DE8693C282AEB282CE9F6803742201BA99AC02998B63F11772017DB7AC4213DFFF47005A9652EEC95402E8DE2E00F40E0168F73493EC52AD800EC412A7017D4A005AB6EAAECF5802E8A6F2014D511C5F2E9601E823879170974C407FB05600DAF5ED2BBB441BA0EFEBE53CA0BFDD29002D5B79F764B4017AFCF555BEC0F27D17316F830074950574C189A5009DD85456892CCCEEAB2F6500FAF02124DC7997AC4213E7AE178096A5947B32D9003D3911B1C14E84D9A5E763E2D2DD02D0EE6926D9A5DA003DAEBBEC73EC332EDF7F09F336FE272CE82A2BE8FC8936405FDF0453AE6F22AB4006E8255FCB04F41DFD65159A387F8300B42CA5DC93C906E849D72336D8B7CA173995518089DFED1180AEB282AE3991013A32104BC676AD7281CB0F5CC6BC4DA705A0ABACA0F327DA00DDA331A6F4682CAB4016C5F1CD1219803E7410097201BD60A300B42CF9DD93C906E8893D9C07F4B2BD02D0EE6926D9A55A011D8025639C04F4E63302D0B255777D461BA0BB37AA1CA0BFFD4626A06FBF4356AD133FDC24002D4B29F764B2017A4277E701BD7C5F8D0674618106BBB71EC34DB777718FD8D550AA0DD0A3AB7E0FCB0F26615E0D0674DA956C9C3F938CEEBDDA5683E2EEB9442940776F24EB22CC825EFAAD0C401F3C8004B9805EB8B9D280FEEAA3DF90975B68AB74C76E2D70C32D9D65DD84A765D269F5F8FDA72D1836AE2F766E3E82A09000B4696FF539498FB9ABDE2580EE86D820275D1CDFEF7739A0CF9CBA8C3F7EDA72D5ED07870460D23479A19C72B54B49CAC01BCF7D89055F3F5DEE29C70E9D437E6E217AF46967CB43FDD1D575915B67FB7C36408FAAFAF3C000BDE5ACCB2DE84D6BF7E1C0EE53B62ADBB7213D0737F4EB84E0D080AB6EBFA2633CF3FC379763C6ACD1D8BFEB24D6ACDA86E7DEB857B68CF66D48D7EBD1BB2DA2EA85C92EC395196D80EED610532A03E8EF96CA01F47E24DC7ABBACFA267EBCB5D2801E71CBB3A5C43F7AF02CEA378CAE91968FD168C2B9FF9290D0BA21162FFC15317111B87388751698F4982C31AB90C906E87BBA2236C8A70A25584F39955188892B0EB81CD039D9F938F75F32BBC6E7F35761E8D89B111119026F1F35DA769037BA2DF7A6E4007AF5CF5B7125391393A797CC94A5FEE7EABAC8AD7399808E08C092911DAB5A04961F4AC6BCADE75C0E6802684C7C24125A3560752BC82FC289231770FFA383D9EF67FF4B427CC368F8F85C3DBD7CD6C30B3163D628C4C647967B5F04E64EDD5B5609D0C494156BDFB2954D75A167D13FA0EA464B951B00800DD05D1B604AB786B28A6216F4F26532007D80007D9BAC42133FD95625404BC5A44FD3AF3EFA1DDD7AB5B17DD690E03C4D9A7637EE1ADA9BFDCAFF4E0FD4ECF7A7B2BFBDF3F212F6694B292A260C1F7D3B131BFEDA8BC2420DE8E1A363743DFA749A7ECFDBB8E9B62E98FE8C7553DCA71F98C7CA9934F815F6BBFDB1F36752D8DFCBBBDE57AB5EC6BB2F7FC3CE7BFBA5AFE1E5E5053F7F1FD0DF29D1315ECF85EFACC086BFF7B2BF0704FAE2AB55B3593DD352B3917E259B1DA3F30202E54763D8003DAEB39316742126FE78D0E580967622E9434A6DF1D1BB2B589B53DB3FFDCA78D6F6E5B5EFC8F1B7E0E907E7DBDA97972B6DFBF95F3F55CA82961EA3F6A7BE30F3A10530994C080CF2C7BB9FCC40E3E6719876CFDBACCF50FA61C95AAC58B2D6566D7E1EB513F52D3AC6CF93F580543213B3A023FCB164849380DE76DE2D80EED3AF138328253240D6ADD98D944BE9EC0B84F49EF4D00044C784D99E357EFBD959F9080EF167CF07D774F7D6A3ECF01F2BB7324DA97DE918B7A0E3EA47B26394F8F34B7D46FADC53BF98FDD467A0E794AC65FEFC525DE818B52F7FEE795D785F9B347836167E3B933DFBD2E7BE924D5666F65280EE6A7DA1394A0CD0DF2F9701E8FDFBE403FAD3ED4E039A2A4E6F676A78EA007DDADCCFDE7E1CE2FCD8FC37BF67D6CFE6639FB346DCBC6EBFB5F1BE5987C53FBDC8AC583A975C26FD07F7C49BCF7F8537164CBBAA4CB2A20AF2351839E116DC3BF4559C3E71C956E68C49EFE1DEE903F0DFF14BD8B2FE0056EF98C72C8591B7CE6265C6C447300B82EA49293FAF08CF3DB2907D56DB5BD0F6C7BE5CF85BA97A366FD50023C6F763F59CF5BF49CCF2EEDF6306D6EC9CEFA82D6DC76D801EDBC97940FF74A8DA004DD62E694AF74F9FB594A456106F5F3A4660A7B6A076975AC9D23E43E757748C975D96052D3D26ED33D41694DE58301DBC5F90E54D7D66FE574F2128D8F58B4AD9003DBC83EC3E609F71F9A114CCDBEE7E40D375E919A4B6E2EDC4AD647B8BD6DE8266E74C7A0F8F3C3B8A3D8794E8D9E5CFB6F4187F467FF8E7CD522F602A73F2F401ECB92FEB7AFC1867027F46F97348D7A044CF5B59FDA2CA0D20B5A0BBD4C794CA00FA87EF6502BA9F55344729F1F39D6E013435064F6461F5EEDB010468A9E56D0F76E9434A30E51096363EFDDB1ED0D2878D3714019A37309DC3DFEA04D590B040B4EFDC1CF562C35158A0950D68A9FB83E04D1D840025FDE4AE32A0C774446CA0132E8ECC224C5C79B85A015D96BF98204B89ACDD6307CFDA1E7CDE16520893DF31B641146B0BFA74B677716467E641ABD5B3F2664C7C8FF51D4780B6777F507B10A0A53ED16A01F4D0EB1C3D7AE51E5F7EE40AE66DBFE0760BBA22403F30FA0D66E90604F8319F74598026B8F397B33DA0ED7DD004D9AA02BA3C78D3F3C78D21B701BA733CA674A92FAB2D0D3A1D76ADF84106A0F7ED45825C402FDAE51640F7EE5BFA136FFCD4FE78F989CFAE39A069E0E29BCF5683069B6EBDBB3BBAF56CEB19801EDDC17940FF7CE49A027AD7D6A3F879D906D69973730AD0AA6DA30A014DF9785BDC39A427E8E5C9A14F8393BFADD88CD4942C561E7D25D5184087FB63C9D092414C594FB7241303F48E8BD714D0F4727CE7E56FD0B8592CEE1ED61B1FBEB3A2940F5AFA85C4AB2EB5A06B15A03BC7CB6A4206E81F57C80474DF7EB20A4DFC62B7D3803E75FC2236ADDD8F9B6FEF82662DEAB34F9D675F9F68F33BF38AD09B70C4845BD82711F995922FA5B1F38A0AB578F08961080D0FC2A205BFE0E09E53CC1D21D782EE7B47578C9F7A272BF3E3F77F4483C6F5988BA341A3684C7974300C7A233E9BFB333445BA52839B645DFDF0CF5BB2017DE97C2A1E9D359AD593C0B2FECF3DAEB3A047B6776E90902CE85547AF29A02B72719465414B3BA8BD8565EFFE90EBE2209FEA132F8C65835DAB966FC0A7735656BF054D801E52F510B3E54752316FA7FB014D63472BBFFB178D9AC6B028ACB20602C9A7CFBF40A583848E004DCFE153B3C7A345EB86F8FBB71D786DE617A52CE803BB4F62CEEBCBF0C25B931DBA38EE4C7C14CFCC9EC08210E8CBEC9D9796B0F3AAC582EE1487297201ADD561D7CA1F65007AEF1E24DC2C13D05FEEA912A0FBF42BB190FD03FD70C32D9D586350A246FD62C12FB86B68C99AB8770DEB8D1347CEE3AD17BE6650A32880EB8B43A5A8A19AB5AC8FD0B040FCF9EB76D6184545DA4A019ADEF8345897969285479F1B839CAC7CBCF7CAB7E875730706E8837B4FE18917C7C162B660E79623AC9EE4E2B87368EF52803EB2FF0CB31A1E787C28F47AA3ED18758C796F2C43FD46F5583D7FF9611366BE3A810DB4B8C4C531E23AE72CE8AC224CFCE5D83505F41F2BB7E0CCC9CB4C5B6A8BE87A61155AD0D2B02F8A2EA03EC52D687A80776E39CA421DAD9FE2076C16F42FDF6F6483BE6326DFCE069638BCCF9F4EC682777E804AE585F8065158B57C23B3FA1A358DAD5E1747B81F960C7202D04753316FD725B758D0BC5D48531AF0A3F11E7A462849014D2F484AFCD926BF2F85E5D1E0380FA5ABC8C54180EEDEBB1D8A0A34F8FBF79D98F0C05D8C07F485959591CBCAFAF7AFBD3640DFDEED1176BCF5754D70EBDD3D585DF84B9D8CB6D52BB7B081407A0E9B348F6306DD98FECFBBDFC5D1310E533AC5C932769905FDF34F32017D535F5985267EB5B7D280A64F59FEE0D045E21A4431CB599AF80020FF5BEBF64D1019156A1B180C090D44FB2ED69D0A8E1D3A8BCCF45CF66F1F5F6F160D909A9CC9E0479690F501DD6F1BD8931EE3FE447AA02945C786A3651B6B60F9BE9D27405602257EBD0B675370F19C75DFBEC41BAC7E427277505D2A3A46F94E1EBBC05E00AC73ABBCD0F3C6F6AC9EE427250850DAB6F110FBBBDC641B241CDECE7940FF7ADCAD80A6766A9A100F5F3F1F68353A9C3A76D1D686FC7EA5EDCEFB059DD7B0490C8BBC909E476E8CE44BE9EC541AB4B52FB3BC7E415F6C9468509ACAA4FEC8274548DB90974BA182E42A91F60BF27BABD42AB9CD243B1F1B2424400F6C23FB1CFB8CCB8F11A02FBB1CD052BDA5CF1ABFBEB47D793B4ADB903FA3D456A429FD2E7DEEF933CAF5A617A5B47DE93A74ECF0BED3AC1F911B8CF70B7E3DFEFCDAF799DDDBAC515E94384BA4CF9AFD735865F18B4F319C0DBB0000200049444154B44571748CC5948E7201ADC5AE553FCB00F49EDD48B8E96659754CFC7A7FA5012DABE06ACAE4CE019FEAB8051BA087B5456C60D5378D3D95A5C1C4DF4EB815D0D5A1474DBF0603741801BA55956F65F9B134CCDB9DE4724057B94275F0441BA03BC4604A47ABF1E528310BFA97557200BD0B0937CA04F4920302D08E9477E3711BA087B6711ED0BF9F148076635BC929DA06E801D658E3AAA4E5C7D2316F8F007455B473D539A500DD214656B1069D16BB7EFD5506A077EF44429F1B65159AB8F4708D06B4AC9BF4E04C36400F6E85D880AA6F107A2A5B8B89ABFF1380BEC66D6D05B42F96DC296FA3D1B2AABBFC4406E6ED4D1116F4356C4B1BA0AF8BC694F6F564D5C4A0D761D7EFBFCB00F42E02F40DB20A4DFCEE8800B42CA5DC93C906E8412D101BE0848B8300BDE6B400B47B9A4976A90CD0A1046879FBD8950DE84CCCDB27002D5B7437642C05E8EBACE3608E127371ACFE4306A077EE40426F79DBBE272E3F2600ED4879371EB7017A4082F316F45F6705A0DDD856728AB602DA074BEE90B78F5D99803E998979FB5385052D477037E5B101BA5D14A6B48B92751506E83FD7C800F48EED48E8655DFBC2514AFCE18400B42391DC78DC06E8BB9B21D6DF0917478E0E13FF3E2700EDC6B69253B40DD0B7C9DB85A34C409FCAC2BC036902D0720477531E1BA0DB46624ADBF21788925EDEA0D763D75F7FCA0474CF9218E48AEE2171C54901683735B29C626D80BEB3A97316748E1613FFB920002D477437E661800EF1C192DBE4EDC25136A0B331EFA000B41B9BC961D13640B789900F68B2A0FFF95B06A0B76F43825C40FF784A00DA6173B92F830DD0FD9B3809681D26AE1580765F4BC92BD906E85BE52DF25E26A0FF2340A70B0B5A9EE46EC9550AD06D22645D83B938D6FE2303D0DBB62221B1A7AC4213579E168096A5947B32D9007D7B23E701BDFE92B0A0DDD34CB24BB502DA1B4BFAC95B43B84C409FCEC1BC431902D0B255777D461BA05B87634AEB70591760805EBF4E26A07BC8DBF63D71D559016859F2BB27930DD0B73544AC7FD567B69DCAD563E2BF9705A0DDD34CB24BB501FA66792BA09509E833B998773853005AB6EAAECF680374AB304C69256F5717E683FE77BD0C406FDD8284EE3D64D53AF1D7F388085362447FD7AF8D2BAB02753CD3BF3BB43879D68895B7D4771ED01B93715D4B357A75A9FAB2A575BC399CBEFD4FBE2B4042B03796DC246F7A7099803E9B877947B230F0163F663C8954FD0A64649BF1E39A22DCD73214535A86CAAA0003F4C60D3200BD65B36C40F7FFEB1272F46659151099DCA3808F5281E57DE310E357750BFA4C9E1E0F6CBD8242A3C53D9514A5CA56A05D980F3EEF2D6FF6595985AEBA908F3947B2201E4BD992BB25A39702B8BF6528262684C82A9F017AD3461980DEBC0909DDBACB2A746D721132742659794526F728E0E7A5C0AD7101F05729AA7C817C83199B5335C83388976D954574C189D482B17E2ADC10237FDB33FBCB5E2C34625F86165AB378D9BAA049AA5C845A01D0CBB66588BC09640CD05B36CB01F4462474E956E58A891385024201A18050A0720A30406FDB2A03D09B08D05D2B57BAC82D14100A08058402555680017AFB361980DEB801099DBB54F942E244A140752960B158401FF2791919C84A4F8351AF8752A140786C2C82C2C2A152A90085025577FE54D79D88EBD4750518A077EE281FD0050505B8BC750B52BF5C0CB3D100D6F345120A5C73058A3BA2055058CCB098CD5058E81705A05440A150C26CB1300813AE554A6BE402FD9B76C0A1FC2090B3FC4AEB79F4634B02DFD7BC894505A05028E0DBA4099A3CF50C222222A056ABD9DF28294C2693A5A8A808A9A9A9B87CF93272737361341A856C42816BA7004158AF8745A301B45A78E5E6409D9509EFCC4CA87373A0309B411634C1997A2AC19828AD54ABA1B258A0A4F38B13C1D91814047D44240C1191308584C2E2E707859F2FE05BF501B96B278EB8726D528040ECE7E7877AF5EAA17EFDFA080D0D655F7F36409BCD668B4EA76360CECECE06C1DA6412D119B5A913D4847BB1984D306667C3989303537616909509A4A743919101456161097009C83E3E30F8FA41EBED0DEFCC0C98743A1428BDA08B8F4390AF1F7C755AA8345AA8B41A28B5DA52B74F70B6444402111140743D788585C12B2404AA901028BD451C784DE82BB5AD8E3E3E3E08090941585818020202A0542A4B03DA6C3643AFD783404DD6335927220905DCA500EF5FC68202685392A14949863E351586D45418333260CCCC80456FDDF49525A512E6E060988343D88F29240486C040688C4644FCBB0E3ABD1E3941C1D0F4EA8DC0C828F8984D50E7E7C3AB201FCAEC1C78E5E7C12B2F0F8AFC3C40FA75A8544215150D556424D4D1D1F08989856F5C1C7C6362A00EB6C6B0724BC65D5A8872850204646F6F6F10A8A5EE0DD6FFC882A67FB04F46F2D915FF5BC826147087024529C9283C7F1E0567CF409392027D7A3AF4599930E65A37FFB525B274C3C3618E8884392A1A0808802228088AA06078F9FA322BC370603F14EBFE8141A984AE556BF8F7BD0521A1A10CAA068381191D0672931414C0929F0FE4E742999909655626149999405151C9F5140AA80283A08E88807778387CEBD54360B3E60868D4187EB1B1F0F29617D3EA0ECD4499B55B01EAAFF4437DDADE2850588ACD196135D7EE4E70ADEECE505888FCD3FF21F7E851E41C390C436E0E4C4545301615C1623094AE5678382C71F130C5C533382B7DFDA0F4F385CA3F805918F4E3EBEBCBFE6F361991B6E833E84F9D623E65EF21C350AF5367F6A9C8014D5F845AAD967D19D20F8D961B8A8A60D66860D669A1C8CA84322505CAA42480DC2AC5060A7B48BCBCE0E51F0095BF1FBCC32310D8AC1942AF6B8F90D6ADA10E0CBA56728AEBD66205CAFA5AB301BA16DFB7B8B56A5280BFE43569A9C8DAB717D9FBF7A1E0CC19180B0B61319960B11F7CF6F1016262616EDC18A6F8FA4040A075A08F60ECE3C33EF9E887A04CFFE790A68E9C7BFA342E7DB21006F253C7C42062DA2388898B431059D90A05FB1AA4B114B2A4B9354DB02E056C72E9E9F5301A0CCCCFADBC7C09CACB17A138778E457F481301DBFAA34250CB1608EBD819611D3B22A041C3127F61A908916A125D5CA6562B20005DAB9BD73D37C7414CD0351B8D6C902EEFD449E41C3C809CC3875074F162E90B2B14B0D0E71BFD040642D1A4294CF51BC01C5D0F0A5F5F366A4DBE377B20739F1C81D98B2C5A0264B1FBE2C2CA1F91FEC7EFCC1A56F5ED87F80183101919097F7F7FF6A9C8E2A48B7F08D6F443E32B1CD6E4FE90029B8FC110D429AF3239095E17CE4371F9122C3939CCBAA6E8117B70FB444723B463478477EC8CD0B6EDD80B4649A3F05E5EB6903EE1C7764F3FAC0BA50A40D7855676F21E39902946DEA4D1C2585800437E01728F1F43CE9143C83F791246F2F14A93B7372CE4B7F5F165111396F87858E2EBC3121AC6804C3F7C60845BC8DC4A2658D3710232C1563AAA4D7529C8CEC2E90FE723FFC001C0CB0B010F3C8406ED3BB010252A530A44DBCBC40ED8046229B0B91B845BD8DCF236190C0CD0CAD4142BACC962D7E9A0A0414C72D1482C6DA58F0F825AB44448BB760869D90A3E915150F9FB434523F36AEBB66402D64E76C63A76BA00741D6B70B9B7CBAD4F02AF36231DFACC4C14255D46C1850B283C77169AA424E6B6B02502504020CC0101B0909B8106F6222381A8682809522A95CD4DC12DE5B280CCAD643E7022851AD589A09ABA67172E7DB304FA9414A07113D47BE021C4C4C4203030D0666597779FE5019BCAE5C026384BFDD7645DB30147830126AD06484B8322231DA081C6BC5C280A0AA0A01794C48543163459D734C818D8B429FCE3EBC327228241DB9BFCE464610B60CBED8E75369F00749D6DFAD237CEC165D2EBA04B4B83E6CA15145DBA88A2E414689293A0B9920203455A4806D228B2822C624B6808FBBF223C1CA0FF878543EDEDCDDC16DC4AE6BE64FA5D6A2173204BADE4F2C04575D469B5B8F0E30AA4FEF13B2C14EF3C78281ADCDC97CDC0A2807F3E122EA759A503E33C8A89FF5F0A6CEEFEE056361B70341860D4E960C9CB85252B0B168ADBCECD8532271B0AD2C9EE8B42151808DF9858F8C7C7C32F3E1EFE71F12C3AC42F2E1E5EE48B17B096D364752E8F00749D6BF2921B6680B25860282C40C1B97328387B1645172F409B9E067D5616741919304BE391C9EA8B8880393C0216FA090B83323818CAE01078050430284B812CB59009CA04633E4B4A0E90A54DC32DFABC94149CFBF20BE4EDDDC3FCD9C1D36720BE6953E6DEB08F21AD6CD396056CEEBF960E3812A0B90F9BC39BFE4FD129E6DC1C6B485F4EB635A42F3303C8CA2A6D5DD38B2B2C0C3EE164514722A0491304346CC4AC6D5FFAEA10B0AE6CD3D5DAFC02D0B5B669AFBE31E9E73D4D0EC9397A1479278E337785213F1FC6FC3C16FE56CA4AA678E47AF560AE17C306F594814150F8FBC3CBDF1F6A0A6F2B0E7DE36E0B1E69C1FDCCDC8F2C8DF3E435AB8C3F96EA4E904CDBBF0FE7177D06435A1AD0A60D6226DC6B736FD843DF99A6B587B574C091EAC181CDDD1F521F36738768B5301516C24CE184458550A6A6C22B3D0DB89202486646521DD9CB2D3010AAA060665507B76A8DE0962D11D0A00194EAD23E7567EE499C5BF3141080AE796D56A91ADB66ED151522F7C40964EFDF8FEC03FB98854C11182CF4CD7EE66854141BD033366A0C0BF99069504FAD869A42DD24A16F3C26D9DE6D611F785F1520DBDF249BEDAAD1E0D29A3F90BC74295B12C967F418D4EFD587B937E8055119F7466544B49F23207DD1F170BEF2FCD734E8C880ADD382061CD917495626BC2E5D82F2D24520230390FAF269D20245AB50644B501042DA5D87B04E9D11D6A103BC838285755D9986AB057905A06B41239602088594198D309B4CD0A6A723FBE00164EFDB8BFCFF4EB14FF0526E031EFAE6E303456C1CCC8D1AC3D4B021E01FC0DC11F63E64F2F1961769C1A12C1DDC73A5B464B1E6255DC6D9AFBF42C1BEBD40541442C64D408376ED58ECB3B3EE8DAAD6D51ED6F6C0E62E101E1D6203360D389A4C50141640917419CACB97818B17009DAE24A44F522902764093A608EFD205611D3BC13F2E8E59D74AB50A8AE255FC846BA4AAADE8B9E709407B6EDB5458331B94E9D35FA301CDD8A309218517CE23F7D851F64353A94BB92BBC54B0F878036A6F202418888D87393E9EC18E66ED1194A533F6ECDD16DC8F2C0D7DB3ADBAE5C6491A2C7AC36040FA91C338BB601E4C14F6D6AD3BEA0D1884D8C68D59EC33D5DD13922D24B138F6BAAC093357CD70A401478A27D7EBA1484F63E17C484981222F97019B85F4D94DF2A10891E096AD10DCA60D0BE9A3D996E476A2B03E451953863D411B5187CA2B20A67A575EB36B7E06455AE8737260C8C9812E3313F967CF300BB9E8C2056BA445894F814D83869F3F2C01FE405838101BCBDC168A9050781547599435B027755BD803B932BE63578845D0D31616E2D29AD5B8B26C29E0E303BFC14311DBB317A2A2A3AF8A7D76C5355D558674C20CF7A34BDD217CB091FBB0B94F9BAC6B364126ED0A14A9A9B0646640595404057D05D10A7D92681AA5B737029B37476093A6086A9E00DFA8683608A9A6A52BA9FD45AA110A9439D59B2F9674A5508BAD4959D018C552A31ED59AC5338EFDB50508CFCD42784116FC32D3A04DA655E052A0A54127C9C3AAF55221D3DB0FE9F4E31B087368280B81A3F037F8F9C14BA5663F349D9AA22E54DED615B4C8C76C3D669D1CE2A5F482822D8A4F0B87172F1E5E5DEBDB5B006F830E26A5174C5E2A982D66B65646E35FBE05CE9E4672783492FADC0ABFE6AD1010140C259B61E851AD765565AC6E7E9ADDC856232B5ECFDA0CB389A6A45B63B0E92B81A69E1BF4D675438C06EB34749A2064214B3A3B0BCAEC6CB63E76A8B610D1BA2244E98BE06B92ACDF4EF1D7E1E12C7C8F061C8D91F590191C8EECE070E4FB07C1AC28FED2F070BD3CBB355D5B3B6A8A06417EE8533F823D6F5250B3D5ECE86DBD33390BBF5FC842C7D870D75E5D94566905582C2EC5DAA6A6407FFE2C74E7CFC13B3B0321857908D2E4C35FA729B5959339300886C828E8C322A0090D439E8F1FF2BCFD51E0EBCFAC6495DA9B0DF0B1D8646F1F2B8CD5DEF02A9E92AC2C863114927568D9035CFD4F31DDBB3EE932749BD681D656F4EF3F90458EE84E1D47836F3E829A1649EAD403598937C32F3A063EF449AFB0AE0256B39275CB2EF61FDB2C4702B6894D003291CB83AD23A287516F5D3384AC6B82362DC5EAA7D3205857C47EFCF36843832CA833D3A1CCCFB3EE3A539C742A6FE4F907B11F6D781454F10DE0DDB829BC1B3606CD7C64ADECE96FB79AD5B095AEADDE64C6FEA434BCD5BB150B43950E76B31D55A8E1379E4FC5A1423346B76B52E90B88139C53C03649A4B000DA93C7A0FBEF14F417CEB2B591CD05F930D9AD636C51AB610C8B80AE5E0CF451F5D82E2134B00716FE56128F6C8DB8F02D8E4F2640ABA1F252318B53E9A58492C0267963973CA7D50F66AB82144A6746C1F62DC85EFA250B4F0B9BF6187CAEEB84CCEFBF81FEAF3F60F20F80B9FF4084F4EC83B0F00878FBFAD602C0145BD67CA9DFE2DD6208D6F4C35C224603B3AAF5E4DED2E9A1B7ADD0A7835943A17C45405121BC7273E19D7E05DEE9A950A7A5D29649259D931E7EF2550705B1979E4FB304F8346F019FE62DA18E8A622F646B1FB856EDEFDC735453CF2E3218F1FEE68378B76773361BB6D482FD04E8C2C2426C387705C70D2A01E86A6865DBC83FADB6967C19DA13475174601F0C17CEB14F598B5E675D8A536209997D7CA06BD018BAD838E8A26360F60F601690978F2F543EBEF0A14922B4146771289CD587EC0D959AD6B4A091FE92352D6C037BFC5E3DC482620B1A190CC8DDBE05053F7CCBC2D17C060C855FFF01C879F16920330386FA0DA11C320A11AD5A233028987D0DD42A0BB0B8CDB90D2C8DBFA63D16AD6B8810ACADD6359B3443A17CF47FB6A4AA0E26AD967D81C1A0876FF225F8255F86F79564280B0A4AF76E5AD889D62E2137575C3C7CAEEB08BF36EDE09BD04A58D6D5C0017E0902F47B1BF7E38D6E8DD8AE2AA5B6BC2240D3A6B1EBCF26E3A4C9072385055DD234C533ED6C0ECECA828C03963E614D14736C6271B0BA9347A1D9BF17DA83FB61CECAB05D8F3D94C52BBF59542A18C323A18B6F004DC3C6D0474431CB97ADFC563C63CF9BC05CBC14A7756A3501D93A638FBD858BA15CFCB4556397ABDAA5084034953BE7E07E687F5AC696FEB45CD7115EBD6E84F993796C453C43C72EF01E3402016929306EDD04FF9E3720B0F78D564857B67DAA56CD6B731607377787144789306017478130EB9AD6BF2E5E039B7E67BE6C8A773719A1CECC60B0F649BA0475F1D88575853E73699BD9CF0FBEED3AC0AF4B37F8B668C3B605A3303F5A6AB5CACF02FB40A299AB66902BADA6F4C9EA686C0D59D01BF7E3F5CEF5CBDE34363F3F1FFF12A0CDBE18D156B838986390A640275D8621F9125471F150C735280E5F72F4F967B57DC84F489F9E3493CC989106DDF163CC8FAA3F79AC54C81441875C1666B537CC3EBE30C4C4401B5B1FBA9838906FD91A8F6C1DD0F3F6F6818F6FB1DBC2A704C8CC6F45502E8654C94083A3BA5647F7937F0D8BC50AE8ACD3A7A0FB693954278FC1141E01D07A15470EC144BEE8DE37C18FEE75F3BF6C1D0C655434EABDFF91D59F5E237DD1F2F5299DB3B89F4997542D7687988CB49B0C59D9D68D0AB8754DFF27EBDB4481009A42F8A624C1273909EA8C3478513CB6410F2585FA49D75BA1094AF51BC2A74D3BF8B4B90EEA7A3150F8F9B3D98F647997BC142BEA6BD6BA1AD252A13F730AEA060DA18E8967D017EE148000FDC1C67D78AD737DB664EE55BB7A73409F30F962445DB7A0A9C39B4DD09E3C8EDCC51FC3989C04DFEE890899FC109B8A6B75D1493A23B76CC8A2217F714E16CC140277E922F4E7CF407FEE344CA9A940F1483B1B13527BC3E4EF0F939F3F4CC121304446431F6DF527B305EB556A2B907D3894ADAE0BA9852CB5924B8DFCD6602B922C68B2F8B25253A0FD6939BC766F8785E29B556A28755A1849AB464DE17BE6141445855637CF4DFD103E78147C8BD781AED55674792C97B8454843BEE093D57F6D80D140EB6097F65B5BDD21D615FAC898506567C23BED0AD4A92950D11E8E5A0DBC0A0BA1D0EB4A59D74A5A08AB49337893DFBA7E43A8C223A0A490CDB0705BFCB57D1B509DC87D95BDF8136837FC0375424B040D1D0DDFD66DD9649B3AD96692B62440CF910BE8E17519D034384333F00EEF47FEF225305EBCC0769056F5E98BE0C123E01B1A566A8495DC15C6B42B30A5A7C2987A0546B2B82F5F80293909661AD82B4E168582597FC6A06018E9FFA1E130444432178685F6D82B5EE18D222C4A7CC8C551172CFC4DC57E4AAD8D4C837B1EE643AEAA2D582294850123373B0B85BFAD8472D33A2825DB6259945EEC6B83606D080E81B66357F8F6BD0DE131B108A0DD588A17F477BA1E35BD003B7748C9824F46161D422E11F261EBF556DFB56D3BB06277084582786565B2A810554E1603B63A2F976DC22B8D1051F8FA41151307557C7DA81B3686574C2CBC22A3D946BC5E926DC1D8347D9D0E39BFAC8071F5AF5090BBA5452B040E1A09DFB6D7313F785D4E04E8B972007DDCE48BE175D6C5618573D1AE6D285CB502A6CB1761F6F282F6BACEF0EE773B429B25C0DF3F0096DC6C182F5D80E1FC59182F5F84293303A6AC0C9873B26DAE0B66257B7B431F1E69FD098B609116E6A0600664859F1F0B7763B3F6D8564E3ED6752E282E9962948B07F628D2823EDB4B5C173622D7D2FE6C5DEFB9202F0FB91BD741F9D76FF0A2D9749244DA6AEBC5A2B04317285BB743786C3C42C3C3E1439FDD5EE4DBAC596E1DF7376419112236FF7549FCB57D848841AF6510A7F5AF09D84A722715E4C12733033ED95950676740491BF24A1259D7F4E3151109755C7DA81A35818AC2F922A3A1D5E99075EE2CF46BD7C0F7C06E284D2678356A82C0E163E1DFA96B1D734F956E7502F4BC4D325C1C04E8617511D0DC723EB817052BBE8589A6DA9ACDC86DD711BA6E8908F5F5454056069417CEC194960A4B411ECCF9F9B0684AAF6D419FE0BAA87AD090BB22321A165F3F16FEA6A0D0265B7445692B9906F5D80F597F3CD28206F88A5D15B5CE4AAE8848346DDD6C4651413EB2F7EF8162D5F750A5A596FA12D1D48B456EF7DEEC333B242A0AA1E111F0A3CD5DC9075D3CC5D9FDD0ABA157B08F10217708A8AB9BADB1D7B65D6668B20CB9447874089F3CA38399DC1E9A22280B0BA0CEC9826FDA15F8A45D812A37A794750D6F1F288BC3F994E11150346A8A82D070E499CD50EFDD89C09347A1341AA18CAB8FA029D3E1DBA2B5DB16BBF2F4D62240CF9703E863265F0CAD6B80263853F4C0D1832858F635CC17CF5B07088382A08D89876F7616545A0D144603406B224806502C5E2AE8A3A2A1896B80C2D878188343016F6F2829F4CDB738FEB838D282BB2EAC16329FB157126D61756DD742B745659E8EE2B6D06A34C83CFB1F14CBBE82FAC2395602B9890AE2EA233BF146F8356C8CD0C828048784C22FA018CEB53D8AA3323ACACD2B05368DBD14C761B3BD268BF770249788BED87F6D28768710B8597488566B0B0B5515E4C32FE512FCAF24C33B2589C1D796A86D680B342F154CDEDE30F8F94395970B75A135EC4F41BBA64F7F12BE2DDBD4494813A03F940BE821750CD066B309FAD3A790FFF90258922E3BECDAA6804006E482468DA189AD0FB38F759121DBBA16148BCCA22D7C6D6E0B1ADCB3F9908BFDA4D5B1C890C39BF1C00CD65D5334C8A6493A5F7F0AD5B1C3CC6991DBA00932FBDE8EA0E87A088F8C42504828DBED9B74AF5571D01ED226D23544C8F5C736D3B5C560170F38DAE2AFAD96365BF0C968648B3BF9A52621E0E279F85F3A072FDA12CCC17D31483FFC147CEAA0254D805E2807D0478DBE182C13D045855A68B43A0FE94E55AB067542BFF42468BFFA1896CB763B5153589005285478411B1C0A4D7C431451F85B58048B2AA019792A6F8AB690FA90A5037BC5F1C8CC8F4C33B468D69E6BA7D5AAD52A0405FAFDBFBDF3008FA2DAE2F83F7D534880449A020A22F60E4840408AA4808A58F0292A3E8C140141A58874E9080822D828FA0011450445514A22A0204BB161C702811084501292EC6E92F79DBBDC65B26C92BBB39BD9C97BE77E5F3ED89DB97377FE77E63767CE3DE75E9F5EEDC952CACBA3398BEDFA44F4732DEA13B2CE4E934F7FDD2A847F63C591FA8D70AA5922626A26208E6EE4D8589121E94CC0A9E8D6F7F30F0460890847748CF92621A2688DDCBC7C918DE9CFA28535BD5DCA19FACE0D389E7587882CC773F388D01C2334D748C4F1A388CA3A8CC8CCBF6039FE0FA2838A11EEA1DB82292AE4FE47E1A8DF182567EF177F9E8751C70A090E465434196ACE85822B2A04E8F95B147CD0DF7B01E8F90B5663F7DE5F2B6ADBBCDB4B4A105662478FFC9FD0B8F8142CCE99114A95ACA2106CB35BB0BF3802A783C2702A380245C10485B0B3E9D261622E5EE79F73404F264C0867C5390772A5E8D0A07E2D0C7AF21EC4C645EB3EFEB17F4EE2B537D762FF1F87751FC3AF15455C6F311CB6025C6ACB46883D1FDF144522343C122111D10809A389F94344B243A0D292AFBBB6319EEC77B75F4FDB1F07FBF6DBDFB1EC9D0D3876FC5C04913F8E5BFA189423E09C42C439F993336780FA4C84F8151789BFE2624A8EB10BAB3BB8D88ED8E242C4C2817A4185681B968F8B424A4FCA46C7B321083F86D4C0A7E117232784E658A1368C7F00FBAA595C6C34BA776B83962DAF563A14017A812AA0EFBC522D5125ADEF74444706E186ABAA66880C5D5821B602D4CF3B826A79271173261FE1793658F21D08B39DCBAC729400C7118AC325E13858AD06F29BD4454854C4D9013D9A45CD99C156FA35BBF22FAA5FFEB023FB583126BF9086F8F838A50BC1D34E070E6663C2C425A8573B048DEA53E240E08B00344D689F9F87429B4DACE8425993A194DA7E16CE81FA955FED29142EAC97660E0CD44F28B3DD0D9BAC7877E5665CD3340C71D58C9A40EA9C61730ED6CE5C0211DE576043C48F99B830EF24EAA21009410E846A6E0F7B6810F2A3C2608B0E437E4C148E45554776543C0A23AAE6245879F925D8F3830D5D5313D1B54B2BA56B8400FDEA56450BFA0E45403FD1773AEAD50AC1E07F3B97E1A94AC519C85F8282FC429C3A91879339A75178E20C824F1620F474212CB93644E6D91193E780E58C1D4167AFC1E2F82814F5B809A1B5AA39012DE07CEECC8DF485AEF8280FD6EF6C98E42BA00F64E385494BD0FAE608DCD9292AE0DDE87C9DA68845070A0B9C596F1476181E118AD050E703D1489DDD051935F3048282C331DB8480DEB8D18A77DFDB8C86E9E67E00001894494441543EFF8A41E3866AAFD7FEECF052EB38163B23721C874F2274F92E716F099B3B0828B484222F260C6762C2504070AE168E92B84884D78C415C8D18C4C5452322325C844D06B2AFF5689379C481D90B4FA38B97807E4D05D0DF392CE8AA08E8BEFF0380B6DB1CC8CF2F407E5E210AF269E219FAA3D84F3B82CFD81156E84044810331A76C88CE73A0A44E2C42DA5C0A4B02A56007F6E291807EC147401F3C908D892602B4B889CF3E4045F85709101C1C24FE020D67FA6D12D0334D08E84D1BAD581940406B812616277014A3202717451B7F4648E649E4C685233736028591A1B05B425014158E104B1822C2C3106E0983253202515116444653D62C256605F661EC0BA0535313D145D1822EB03BF0BA0AA0BFF502D0FDAA38A0497CB2A2C50ACD8E22D8ED34E94C110A690E8342BBB0DE68E0ACC85E04388A10161484A8B868C4D58A4374B5489735A7A713FD5147027A828F803E70201B934D0868A911DDE8668A7891807ED1A4807ECF4480A6FB8906A04F669D405E4E2EECF4B619162CDE88222268D2AF3084478489C1B4F070E71B122D18E15C34422E1251F9EE427FDC8FF218D2822640A72A029A5C1C6F2A01DA6E4117450BBA7FBFAAEBE2D07608419ACCB44F567F89C399FFE0A1B414016CBAB808D0B6429AC7C019D369B1842326360A9648CAF80BEC1A7812D0E327F8E683260B7AF264F3B838CABA59A86F263DB70873973CEBCFFBC9EB634940CF78D17C3EE84D9BAC78DF4480A6689282021B724F9E41C1D9882FB110B18073A8B09245886AA8762A5C67975435D7863BA05308D0A9EA3EE885DB147CD0DFD82D485504F4804A06F4BB6F6DC0E2F96B111DED0C679AB3E419D4BD30017BBEFE19C3FBBF5C2A72416EA3FDD67DB00D2F4F7BF7BC7A15DD89542F2BF3181EEDD75500BB5864173AE7DFA50B8D404E6E0DBAB008CEDA550F2A3A76656C97801E37210D357D1824CC3C908D293A004DC0ECD9750C6AD4AC264E6FE088FBD1B2EDB5429B76D73C810B6AD7709D76EF4177A1437233B14D3C045347A16682736053BBAD3C9DCC06E869260474BAC9002DDD1CE44A74D00AE6414102C602CAAEF0D3B3095A5578922FED752B2DE8E4D444A428029A5C1C8B54019D72855A14C7C0FE956B4113A0A9DCF77047F1EFAD573E8E2DFB5E1780DEB2710F068EE8E1D265C023D3D16748775C755D2301E8DCD3F9E7D52BEFE63F7DEA8CB0A063AA4522A59BF3A9F7CDAE5FE0B0533C69096AC4C7A2C125755C3E50BA9608DADFEDFEADD4619B5ED550C43F1A5124A0C712A06BEA8FE2C83C988DA93A013D67F20A4C7EB9BF385DEA83E726F5120FD17B3B0EC7CA0D535C32BCFED26A5C7E7543DCDAE1060168AD253CE2C97902EE54AFBC427D4E7D2FFB7DFFAF993899E3CC44A3D764EA7BF7F2EDAE5F4BC504D7B930BEC2762AEA3B69414F9D613E0B3A7DB315AB4C6241938E72C057C651D377EEF3CA54554BB9ACEBC405E8944424AB02DAE1C0621540EFB55BA00AE8412602348925A1A007D074E313A00930543E5BBB1D5347BF853BEF6B233E47464508EB9020202FA8158B3FC391C3C7C5F61FBED92F1217464C7CB494E558D1CDEECB7609E831E37DB4A00F66635A25035ADB3F7A01AD85FEDE9D3F63D60BCBD1B8E945A85E23465864D437ED3ADFE49294FAF0E77D7F8BD8DCEC2339F8F3F7C31830F43EB4B8552D36B5ACBE91809E6246406FB2E283F70317C5519666DAE88EFF3520BB9FB30474923780B63BB0E44B0517C71EBB05C98A16F4600301BDF895B578F3E535655AD065017AD9C2F5983FE33D51AFBCE20EE85E778F47FBA49BD1332D455413EE8F43C7F058FF3B5C87496E31109FEC98233E2F9CB70675EAC5BBAC6F5FC0AB5A57027A941F003DC347407FB16137664F5C8E79FF19E6D1822E0BD0546FDEF4F7307BE1900A2D5B2DA0E74C7E0794C94A6F4DD56B563BCF2AA7F6A80FE72C7E06D562A384E5AD7D00AB6AEC693F023482C331D98480CED864C56A1302DA17BDAB5A5D09E8CE29894852B5A0ED0EBCAD0AE82445400F3100D01FBFBF15F5EA5F809D5FEEC398E9BDC52BB22717873BA0572CFE5CD4A37D474EEE25EA51D9B5FD2711FBDCEAB6EB4AF5BB27405F50ABBA184DA6927DF8385AB5BFCE94807EDE0F807E5127A0FB3E3005575C7B09C8DD90D22D11F73FD249844AB9BB38DC01FDF8BD1371CD8D978A7AF4207CA44FAAA847EE0E59BA746F5DAA9FDC01FDFDDEFD88BFC0E9DA292CA089E71DA506102B1BD0934C08E82F18D001E7B916D09DBD00F47F5400BDDB6E41D2E56A3EE8A79FAC7C1FF43F4772D0A94B0B217A932B1A887F5500FDE76F87CEABF7D3F77F62E4A0F90222D2AF2D7BD313A09F1AF900A2A29CCBD253A1412D0904FADCF6EA3434BAEC22B1EDD60ED7E39E073B20B6BAFE946B6FAF2C69418F1CE7BB8B63E614EFA338C8553179E4620C18769FF8E91736A8E5F2BF5704E8514F2DC0B0F10F8B7A752F4A404C356782CCAF3F3AE743F9FCA31D48A85DA3543FB903BA76BD78DCD8BCA94BB6C8280B2E6A58CBF599004D83BC34A776C34BEAA0EFD3DD41757C2DD2829E38DD7C3EE82F365BF1215BD0BE76B14FF525A06F4F4944E714B5280E1A245CFA95828B8300DD5911D0CF18006852CA134CDD0709E50022EDEFEE83D6AA5DD6364F80FEEDA703E7B946C8C27BAC7F57F1B0D0BA38DC7BB4BC6D3EF5BEA6B204F4737E00F42C9D80D60E126ACFCB1DD0DA814095680CF701623AB63BA057BEBD110BDF1FE57A70BBF7BDD68276D7BCBC6D15F58F04F40B2605F41A0674455D58A9DBB580BEDD0B402F5301F42EBB05B73755B3A0870EA85C0BFAE3555B8590A977B72E25280DC88D7DFAB552DF692306D2D7EF425E5EFE79F5CA83371DF3930FB6E18921DD85CF92CAA3778D455EAE333D5500E2E18EF8F3F743B8AF67475C7C693DF17A3EACEF5CD7F6071F4F466AB756220C8FEA2E5E3DB6522F0409E811E3D250C387288E4399D998AD03D0D95939220C72E838A725EC0E68EDE767C7F544F3565789AFA8DE2BD35762EC8B69E7D573388AF055C6B7F8FDE783CE70474D79A2C7244C9ADBDFF516336DCC5BD8B96D9F6B0F314878FB4DAEBEFF27FB0486F49E85FC33CE19175BB4BECAD5BFCF3EF192685FCF8C7412D0E3A799CF82DE9A6E4520009D73EC94087D3DFECF29D44C882DD54F957A1398F0E012D09D9213D14911D0850E07962B01DA664127450B7A582503DADFDA5328DDD2373E11376CAFFE5D51BD86337E57164F0381E5FD06772B9942C7EEEDD9A19445E7EF73D01E4F027AF8D834D4F0210EFAD0C16CBC34D57B1747659CDB86755F63E91B9F62E0F0FB85CBA4569D73B1D42A96B7F637B95BC9DEF66F59E727013DCE8C80DE6CC5DA55C646711CFC2B1BEF2C5A8F5EFDEF100FCF63474F8AFB8CC22169DBD123392E296F68DE14741FCAF048DA264353698A857DDFEC2F25BBDC46061485B9D25BADBC2EC865291FBE141E2B5DA0DAF04BD91ED5A37249937AE7DDF7FEBE8E25A03B7A0368BB03EF6C57707158BD00F4F02A06E8BFF61F16373F95EE0FB547D32B1BFA04E8A9A39688812E59FEFE230BDD7AB4F38B9F53E5A291801EE623A00F9B08D0F49093A5636A7397D54DDF790BE837E67E88DA756B9E5DA710C2BA6BD8A88E6BC05845634FFB48408F3529A03F3218D0145143209403F152331A079A33658548F4AA5D375E44D14C98D5474C86F4F66BEB70C5359708781384BB3FD81EAB5764B800BDEFBB3F109F108BE726F612F75397C4C178B84FAA00345D1714563969E4225C7BE3A5221B91004D6F4F140EFBD9DA1D3879C2191F4FE3481FBDBF55D42BEBBED77B1D94554F0BE88E8A1634F9A0DF55057447450B7A44150374451D411714CD1BE029E1C1535D4A035FFD4E866B53F3C42B85EBC3A822013DD40F809E63120BBA3CEDF272F3854B431BEB5C91D6ABDF4987CDE64CD3BFB871DD52C0AFA86E59DB25A0C79810D0DB365B611640D338C2DE9DBFA0FFB3F708AB973EAF7C6B83C835A090594A4EBAEC8A06221C72D1AAD1E78D3168A19FD27210868E7DD8D5F734A651BF612D91854AF378C831244A446A72797DD7C3C2DB87BADE6B425B4F02BA437222BC01F44A1540EFB459D051D107FDDCC0CAF541FB43ACFFE56348403F4B80F6C1074D16F4DC69E670715485FE92801E3DD57C3EE86DE9567C6C120BBAAC815E02B476905F05D09E069DE9812DC710C862BEA8412D3CD83B091F2C4F170964A3A7F51613FE7FBA663B766CF91E1D529AA1634AF34ABFC4B480EE90AC1EC5F1DE0E05170701BA8322A04732A02BBDB3CB6B4002FA9931BEF9A009D02F33A095FB52027A944901BDAE8A02FAB6EBFAE0E2C6CE37D04EA9CD71C77D6D5CE1979E004DAE8E0617D776F51BAD2A44EE904307FF41DEE93398396119E62F1B2E129A32FFCEC6964D7B71FDCD97E1C616972BF7B59E1D25A0DB2727C21B40BFAF02E8AFBD00F4F30C683DFDE7B73A12D04FFB01D0F318D0CAFD2201FDBC0901FD65BA1546039A9284268E58245C1904C823878EE1C509CB7073CB2BF0EAAC559830BB0F12DB5E2BC25229DEBD2C0BBA7B876158FCC118D10F1116E714A4B27802F4AEED3F62D5E6692E88BB77A0FB203E65FB6ADD1FCA1DEEE58E5A40B7F7C2825EA502E81D8516DCA668418F1914581707AD8442E174B2D0C08176D4DF4B5D3DEEEE29E142EE6844ACB38A053D78741AAAFB10C59175301BF3A7FBD7C541A174B22F643FD1EC76349B1D85D2D1E010CD52E89ED823B7D179934544AFB0142E4759829E2653D26EA32880FC3305E78DD297D7877AAE1109E81153CCE7E2D89E6EC5271F181BC52135ECF7D0541CCDCAC105756AE095FF0C135FD3140D1FAFDAE69299C261292263E7B61F5C619414F238FDD541E27B6DF82CF997DB77BE5984ADD2B1E531E5C1A81ECDAF220B0D1252DBE4E7166DAF1E23C264FB3F34557CA63059F79C0A3DFD5F511D09E8764989B84D11D0857607567FADE0E22040B75304F4D800039A468FAD5FFD284685A9D0D35926915424A2EAF6AA00E8A7FC00E8057E06F49D6D9EC6AC3787A051930B21FB893E5318160DDCDCD769840849D4CE48487D42BE49E9BB6CD1FA6A74B9A73506FF7B961885F7349F0AF92FE5B6B2E6DBA82C400F3729A03F0D10A055EFA9B2F6F36425FBFB7EF6F537AAD4D702BA9D1780FE5005D0DB0B2D68AB08E8F12600B476A4F744CE69BCB5E063116E73ED4D4DC4BC1BF44AB375F35EB18C0E8DFE535CE6B7BBCFAD44DE29B585784253ECE68EADDFBBF46F7DDBF5C2BAD35E349486FCEBD9701DAA3773C252D196AFB3A3A974BAA77DA48B63A01F00FD9A9F01FDFC53F3C572474F3CD54D845A757BA09D6B647DF9A2F57865FA7B689678A5887796912F14A7FCC7AF87D07FE8BDE27429DDBB41A33A98F2FC12D18FF49AAC8DE0A0FEA5C996562DDBEC9A44CBD3844833C6BE2DDAF6573F91055D121C8E612604F48E742BD6575140533F5DA9993296AE857B1E6A6F58D8AADEFBD0BD9E0474DBA444B4F502D06B5500FD9517809E60324093505A2B8A42712896B2E60571C2BAA6F932283599C2E32894EEC3151948BE2B110FF64EC6DC292B047C699F8DEB76E286669761C0881E6262797A2D2338D320832C54C75668C77303E6056C850F09E8017E00F4EB7E063459C9CFA4BD040A7BA242206ED8A8AEF83FB986E875935E69C94A769FEFDBFD82F734CA4FFBC8B4FBC7BA4F2817D0FE0EB592801E6A52407F5645014D092C2BDF76BA27A8D0020FF29AF1173C8D388E04741B2F01FD910AA0BF2CB4A08DA2053DB10A00FAFA669789C99124BC656A32C565EEDEF11386F59B8BB7D68C1329DB23A73C269257F67DEBF485BDF9FE683C76F77801684F596874419901D0FD7D04F49183D978C3CF80A61903972CF858A4C3CBAC407973C8B792B21664280BD0EBD76EC7DFFBB3F0F8A0BB44F201B59174674B24B7181410403F6342407F9D6EC5E75514D046C0D3883624A06F4D4A441B2F2CE875AA80BE5511D093AA00A0B53E2C4F3E4AB2E616AE1A7DDE5A77324D58029A06BADE5BBA115B36EEC5B817D344DAA95900DDCF0F807ED3CF80A6C13B5A458532F7126A55C7ED5D6F11F706E99A4B96D28629C2D7BC7CE17A8C9AFA6F11FAA49DF04A7B23490B5A6B096BB3D7B42BED787271549605FDB44901BD81016D0487CB6C430BE85BBD00F4272A80DE566841EBCBD4264B9AF25460A3383CA598BABB38FC0568EA0D8A1220B7C6D03E7330FDD581B46CA1292CE8BEA3D310E743A2CA91CC6C2CF233A0098AE44EA231026DA815C19456D4888EB1880C3FD273D2DC7EC247AC02E80792468A745E5A717DDCCCB452F5CA1A24AC2C400F9E6CBE288E9D19566C64409B02D0AD9312D13A492D5185A238D6EF5488E2D85A68412B45404F3301A02FBFFA62B11415150ADD5A307315A6CD1F203E6BA706A5CFB43EDD90C7678BC9E1EFEAD10E4FF69C26328E96AC1E839E778C1193C30F19F520260C7D037BADBF8818CB5EDD9C2E0E5AF4925627A6623640F7199D86581F009D9D998DC57E0434BD59C8370FD28B1EA4B29F526E71BA236491DB28E98016E17DF88E316255162A8BE77F849B6EB95C58E2940A2CDD54031F9D8101C3EFF7B856E59A955F883E9485E668A09570FCB91AB8F4410F3221A0AD19566C62409B02D0AD9212D14A11D036BB039FA9007A4BA105898A809E116040D3725634D22F4BC20571229E52161AF8BBF3FEB6C21D21CBD64D7BC53C00B2CC7B7BA898649E66C6A2350865916E0C19A3A9AD27B77DB7E737AC5BB50DC3263C12900B420E12A6F901D06FF911D0E492D0F6857B3F49D8926872DBF40503852B845C23CFF6712E23F640AFDB856B64CC9057316EE613E23BD94F721B7D275D20EE7D48DBA87F694C81067EFDD54F12D0034C08E85D19566C664007E47E948D4A174762522212BD00F4065540DFD244CDC5317370605D1C01ED85B3D108724DC240FC1609E8DEA37CB3A08F6666E3ED19FE4D5409841E65B5591971D02541E1E86F4240EFCEB0227D75601255CCD4E781FC2D12D02D3B27A2A52AA01D0E6C5201F4170516DCA26841CF6240BB168D0DC4052101FDD828DF7CD0E4E258CA8056EE4261410785A39F49019DC18056EECBCAD85102FA162F004D3EE874AB820F3AA3C082168A807E69F074445A827055937339F39571C2663DE6E71FEF0025AC04AAFC71D0816339C5E8E5070B7AD98C25A8151F8C06F54203753A95D66EFA67BB444291BFCA9E1F6C08098F405F13027A4F86155FACDE8CA68D42512D3AD85FA7CCC7F1428133F925D8F79B1D2D3A27E216550BDAEE40860AA0D30B2C68AEE8E2583A6D218E671DF3E2A7F3AEFE562022D2827F3DFB0862AAC7EA3E744EF631AC5EB012B9274EEB3EC6FF5BC5EA0935D0F3B9DEA63BED9FAC3F20E3838DB0E53B97F9E2121805424243D132B9356EB8AD99D20FB0391CD8A20AE8668A80B615DA50525CACF40378A7CA522008E1967011BAA6B7501FDA6D769450DC2017250582828285EE662B458E2238ECB44001F76560FB2608A161212050AB148AE2D8BA4BC1C5B1B9C0829B1401ADD230EFC30AB002AC002B50BE02345BE3972A80DE4480BE542D8A834567055801568015F05D0172716CAF08D0E9FB0F634D4E092EA95BCBF716F908AC002BC00AB0024A0A388A8A91F9D79F187FE345888F8F47585898CB6D1954545454929B9B8B1F0E1CC6C63FB270A6A000C5EC5B561296776205580156C0570508C80D6AC6A16BD3FAA859B3E6F980CECFCFC7D1A3479195958553A74E89A5D279D0C857D9B93E2BC00AB002E52B4003FC91919148484840DDBA75111B1B8BD0D0D073167471717189DD6E475E5E9E8073015BD07C4DB102AC002B6098026441C7C4C408385B2C1601671999154480266BD9E170883F726FB0F56C58DF7043AC002BF07FAC80043159CDF4476BAB6AC366F507D0FE1F8BCAA7CE0AB002AC80110A30A08D5099DB60055801564087020C681DA2711556801560058C5080016D84CADC062BC00AB0023A146040EB108DABB002AC002B6084020C682354E6365801568015D0A100035A87685C851560055801231460401BA132B7C10AB002AC800E0518D03A44E32AAC002BC00A18A10003DA0895B90D56801560057428C080D6211A576105580156C0080518D046A8CC6DB002AC002BA0430106B40ED1B80A2BC00AB0024628C0803642656E8315600558011D0A30A07588C655580156801530420106B4112A731BAC002BC00AE8508001AD4334AEC20AB002AC80110A30A08D5099DB60055801564087020C681DA2711556801560058C5080016D84CADC062BC00AB0023A146040EB108DABB002AC002B6084020C682354E6365801568015D0A100035A87685C851560055801231460401BA132B7C10AB002AC800E0518D03A44E32AAC002BC00A18A10003DA0895B90D56801560057428C080D6211A576105580156C0080518D046A8CC6DB002AC002BA0430106B40ED1B80A2BC00AB0024628C0803642656E8315600558011D0A30A07588C655580156801530420106B4112A731BAC002BC00AE8508001AD4334AEC20AB002AC80110A30A08D5099DB60055801564087020C681DA2711556801560058C5080016D84CADC062BC00AB0023A146040EB108DABB002AC002B6084020C682354E6365801568015D0A100035A87685C851560055801231460401BA132B7C10AB002AC800E0518D03A44E32AAC002BC00A18A10003DA0895B90D56801560057428C080D6211A576105580156C0080518D046A8CC6DB002AC002BA0430106B40ED1B80A2BC00AB0024628C0803642656E8315600558011D0AFC1776FEC638DDA41D8D0000000049454E44AE426082 where `app_id` = '5'; -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000001680000012C0806000000EE2C29AF0000200049444154785EED9D079855C5F987BFA54957AA882E282088051535D244EC0876A3222A2AC1462C11A3F2370A0AA8281883062504BB066C815829828A801A4540015B0451A42ABDB848F93FBF91B3DE7B97652B7BCFCCBEF33CFBECEEBDE7CC7CF37E737E3367CECC77328C040108400002B12490114BAB300A02108000040C81A61140000210882901043AA68EC12C0840000208346D00021080404C0920D031750C664100021040A0690310800004624A00818EA963300B02108000024D1B8000042010530208744C1D8359108000041068DA0004200081981240A063EA18CC820004208040D30620000108C49400021D53C7601604200001049A360001084020A60410E8983A06B32000010820D0B4010840000231258040C7D43198050108400081A60D40000210882901043AA68EC12C0840000208346D00021080404C0920D031750C664100021040A0690310800004624A00818EA963300B02108000024D1B8000042010530208744C1D8359108000041068DA0004200081981240A063EA18CC820004208040D30620000108C49400021D53C7601604200001049A360001084020A60410E8983A06B32000010820D0B4010840000231258040C7D43198050108400081A60D40000210882901043AA68EC12C0840000208346D00021080404C0920D031750C664100021040A0690310800004624A00818EA963300B02108000024D1B8000042010530208744C1D8359108000041068DA0004200081981240A063EA18CC820004208040D30620000108C49400021D53C7601604200001049A360001084020A60410E8983A06B32000010820D0B4010840000231258040C7D43198050108400081A60D40000210882901043AA68EC12C0840000208346D00021080404C0920D031750C664100021040A0690310800004624A00818EA963300B02108000024D1B8000042010530208744C1D8359108000041068DA0004200081981240A063EA18CC820004208040D30620000108C49400021D53C7601604200001049A360001084020A60410E8983A06B32000010820D0B4010840000231258040C7D43198050108400081A60D40000210882901043AA68EC12C0840000208346D00021080404C0920D031750C6641000210C8D8B871E33630400002108040FC08646CDBB6ADD408F4EAD5ABAD4C9932F1F3021641000210D801815225D04B962CB12A55AAD010200001087841A05409F40F3FFC60D5AB57F7C23118090108400081A60D40000210882901043AA68EC12C084000024902FDD4B41FECE5E94B774AA5FF59FBDBA199D5BC24C71487976EC36808945A024902FDE0846FEDB559CB770AA3EF194DAC7DD31A5E0243A0BD741B4643A0D412608AA3D4BA9E8A43000271279024D0CFBCBFC89EFF68719E531C8737F073250423E8B83747EC83000412092409F490B716D82B3397ED94D05D6736B176FB33C5413382000420B0AB0930C5B1AB09933F0420008142124812E827A7FE602F7EBC64A759DD7966133B6ADFDD0B595C7A4F638A23BDFC291D021028188124817E78E2773666C6CE97D9F53BAB89B56DC21447C1307334042000818213608AA3E0CC3803021080408910C816E8A5ABB7D9C4CFCD14DA2EA420D1671E9E615576FB9525531C25D2A628040210282602D9023DFA13B38F977F61AD1BD6B41E2FCDB46F7B9F6815CBF91F9AF38BC56607EC854017537B211B0840A004092409F46D6FBF6DB37B75B0F7E6AF70E2DCAAC16F73CD0FCD5A6D0BD6FE6255CB97B116B52AD8B94DAA5AB709CBECE993EADAFC35BF58BDCAE5EC9C3796D898CEF56CF20F1BEDB87D2AD947CBB2AC56C5B2A688D3B52A95B1B92B3659FBFA954AB07A66087489E2A6300840A018092409F4F1076EB6BAFDC759A5F2656DD59D1D938A397FEC12CBAC5A2E49A02F1CBBD44676DC3349A05BD4AE60F7B5A965D316FF6C99D5CAD9F8051B6CE2C28DF6E3CF5BAC41B57236E2F8BAC5687EDE5921D07933E2080840209E049204FAEC96664F4DFFDE2E3D223387B50BD76DB6BA95CBDAC08F57DA21B52A58AF293FD9ECAE0DAC4AF90C27D07B552967E7BFB9C4469C50D75ABFB0D06675CDB455595B6DC2771BECED1F7EB6EE0756B36BDF596EB32F6A50A22410E812C54D611080403112C821D0C598772CB242A063E1068C8000040A41205BA0376C321BF34978AF273CEFA80C2B5FF65732ACE228440BE1140840206D0458079D36F4140C01084060E70410685A48A924F0B7BFFDCD264F9E6C071E78A0DD7CF3CDB6FBEEC51FBE60CB962D76DE79E7D9BFFFFDEF9D32D6CB8C7BF6EC99744C6EE75C73CD3576EFBDF7DA1E7BECB1C33C478F1E6D679F7DB6FBEEA1871EB2F6EDDBDB61871D56641F47BC0E3AE820EBDDBB77915FBE7CE9A597DA3FFFF94FAB50A142A16D7BE38D371C87366DDA14288F49932659870E1DAC4C99F82F2346A00BE45A0E0E81409F3E7DAC65CB9676D65967D9BA75EB6CFAF4E976ECB1C7167BD50A22D02FBFFCB2FDF18F7FCCD38665CB96599D3A752C2363C7DBC9CE39E79CEC0E61EDDAB556B162452B5FBE7C9EF9EEEC80FBEFBFDF0E3FFC703BE9A4934C79CE9831C3097F51D2A2458BAC7EFDFA45C9C20A2BD037DD74930D1C38B0C85C8A647C3E4F46A0F3098AC3C22170C71D77B851D7A9A79E9A542909EAC5175FEC8443CF2B9E7BEE392B5BB6AC1BDDEA77B972E56CF3E6CDF6F0C30FDBFAF5EBEDAEBBEE7202DFAA552BEBD6AD9BFDE52F7F7102B66DDB36AB51A386F5EDDBD78DA03552DBBA75AB13CB7FFDEB5F39406A04BD2381D6B923478E74E75F79E5953662C40827E283070F769FA9CC7DF6D9C724DACF3CF38C4978E6CF9F6FFBEDB79FDD77DF7DF6EAABAF5AD3A64D4DA3DECB2EBBCCD925FBAA54A9E28E57521DDF7BEF3D67DB01071C601D3B76B47DF7DD37C946E5D5BA75EB1CA22C5E5DBA74B1CCCC4CFBEEBBEFEC85175E70769D7BEEB956A95225AB5BB7AEF5E8D1C3A64D9BE67E2BA903515D2FB9E4127BEAA9A71CD7E1C387DBCC9933DD685A9DC9A04183ECDB6FBFB5FEFDFB5BF5EAD5DDDDCD9D77DE99835BA2402B5FD5F5ABAFBE72C7457720BD7AF572EC656BDBB66DEDC71F7FB42953A6381FAB8356C7F3873FFCC1715CBD7AB5FDE94F7FB2430E39C4EEB9E71EEBDCB9B3F3B1923AA9264D9AB8BF2FBAE8225737B50171555B12C70F3EF8C0B50F7D76F4D147DBFFFEF73FBBFBEEBB5D5B58BC78B1F3654113025D50621C1F0481010306D8279F7CE244FA8A2BAE7075BAFAEAAB9DF84A2474B10E1B36CC6EBDF5D6A4FA5E78E185EE62DCB871A31364DDFA2B49602444895315A9236809EA934F3E99E3D65A02AD119DC44249827AE491473AE1FDEB5FFF6AFA5E2226018B047ADCB8714E647EF7BBDF25D9973882D6744724D0BFFFFDEFEDC5175F74236FD557222FE1934D4F3FFDB4CBE3EF7FFFBB9D76DA6939045ADF492C35724EE475DD75D7D99021435C7D366DDA6462DAAF5F3F27D012612589A3044DE2A4CE4CE22BD1534728811647899FCE4B4C3A479CA34EA45DBB76D6B061C3A46352055A9D9F3A9A7FFCE31F6E0AA359B366AE43489D2EDAD9085A763DFBECB34EA035FD251157DD24DC8F3CF288ABA33A4EE51D2509F5D0A143ED965B6EC916707580127E7D5EB972E5425F330874A1D171620804341FA90B5BA3535DCCA973BB8F3FFEB89BA3D6A8F3DA6BAF35895224D0121A898B92845DA3494D3F442955A06FB8E1062750A9F3AEB98DA0958FA663F6DA6B2FD3DCB35224D01AA15E70C1056E54DCBD7B7737F255CA4DA0BB76ED9A3D7A57672091AE55AB961B753FF0C003EEDC51A346B9BB81D41174A29F5F7FFD75577F3153F9E2122509B538260AB4BE133795A10E43234B8DF023811E3F7EBCEB104F3CF1C4A4E6A40E45A367A568547AFCF1C7EF54A0D529A8037AE79D77DCB99AC67AEDB5D74C3EDC73CF3D9DC0EAFB4481163FD5435C0F3DF450676B24D09A27DF7BEFBD5D99E2A539F3D4BAE93BDD81A8038DA6927497F2C4134FB8CEE2FCF3CF7777130F3EF8A01B7517342509F48A152B0A7A7EEC8FAF59B366B68D2CB38BBDBB4AC4405D94D11CAEFED645A751D68E2E3E19A4D153345296D0E902D6C82F51A0256E8D1B37B6A38E3AAAD8047AE5CA95EE81E082050B5C99128044818E0A927D9AB691E01654A0AFBAEA2A37E25492A81C77DC7139043A91978E8B38258EBE131D97CA517717CB972F777724D1C83A12E82FBFFCD23EFCF043BBFCF2CB937CAF291189FDCE52EA087A47021D9DAFBB113DDC9458270AB446BAA79C724AB678268EA07724D0EA841F7BECB1A48E4953195F7FFD758E29B344DB773492CF4F6367049D1F4A1C1314014D4348A0759BFAE9A79F5A8B162DECFAEBAF3789C5983163DCADAAA62B340570F0C107BB51902EE4F7DF7FDF4D03E86FDDBA270AB4FED7ADAF4445F3AABAF5BFEDB6DB925671147404AD919D845923F11B6FBCD11E7DF4D16C81D6A84DA3448D4835BAD3E850237309811E786A24F8CA2BAF644F71E43682D67CA9EE10347DA0FAA803481D41EB7B7548E2356BD62C97A718CD9933C79521E19B3A75AABBFB10AF548196C06B6AA8418306D9771C91408B95F86A84A9C194F8AA3CB1D31CB0E67755374D3FE9D8C49497406BCA481DAB58687A46D342EAC8F46C60B7DD76B34E9D3AB9ECD4396B8E5BD31AB367CF767712FA7B4702BD66CD1AD3BCB63A1BCD93FFF4D34FCE07AA836C974F7497A472C4453C357216FFA8732AC8C58440178416C7064340A2118D0C135744E4F6B90458B7F089A3C9E8B34428FA4C295AC29578CC8E8E8FCE8DCE8BFE8F1E2CA6E69398C78E6C8D3E8B6C557EAA5FEA798975D677FAFFF9E79FCF758AA320BC72E3A232A272538F49E526BB732B3362A4EF73AB5FF4799447A24FF4775467D993CA2CFA2C9551E2B2BCC4F3537D987A5C6AD905B9887208B4EA9CCB0A9E82E41BCB6399E288A55B302A8D04BEFFFE7BB70A4349A358CD67EF8A35E169ACA2D74527BFD57BCA3CFB79F3561BF4EE37B6E8F693AC42D9F82FE42E087D04BA20B438B63410D0148FE6A0B50C4C73CA5AB5408A0F812481DEEFBEB76CDEAD27DADC656B6DF9BA4DD6A151AD6C4B35EFA6B58BBA1DF8F9E79FDD7C979EAEEAC185FED71A51CD95699E48437CFDAF792B3DDD3EF3CC33DDFCD5860D1BDC13CDE8964BE72B1F2D458916E9EB182D4BC9CACA72652B1FDD4E285F7DA627A32A4FF9143421D00525C6F11080403A092409F4B275599679EF5B6EE4BCB65FF222FEFFFEF7BF6ECDA5567AE81648B743BA356AD4A8917B70102D44D7F21BED12FAF39FFFEC045A02ABA7B4126309ADD66E6A82FEDD77DF75EB0CA3759C9AFF6ADEBCB95B485EAF5E3DB714470F1E162E5CE8167A6B725E1D8496BAA84CED642AE80E29043A9D4D8DB22100818212C831073D78F2377663BB4656B64CF256D28F3EFAC8B4665473547ADAAADD387AEABDFFFEFBDBAA55ABDCAD919E324BBCAB55AB66679C7186136889A8D6251E73CC316ED1BD9ED06A6792D639EA69B046D37A1A3B77EE5CF7A45A4F40F53B9A84D712966FBEF9C68DC0C78E1DEB9E866A81BBF2296842A00B4A8CE321008174126015473AE95336042000819D1040A0691E10800004624A00818EA963300B021080409240EB619E7611E9815ED5AA55DDAA0B45A8D2CE2B45ABD2C339C50DD04A0AFDE8819EE20468894EB49632CE4813E7A065BB7E14C12BAE49DB47B5C32BBF3173B5253835A04C71D74DCF066457F4FC20357FADB4D143E01DA52FBEF8C27D9C177305A7513E7A9641824069269043A015C54B1787045A1788566868CBA9B6BE2ACA96B636EA619DF6FD2B5A93A27D69F585B66E6AC5469C53A2402B8297D67D6A758A02A2E83BD5574B04B536F484134EB037DF7CD33DEC548018EDC157D272430544D777A79F7EBAE3A3285D8A68250E7A98AACF274C98E0E232A8E3D203506D1356795A8AA82DA75A7AA80032DA22AA73B42A45DCF5E0554161B49450F10B74BEECD183586DADD5F2426DCFD59662F1D7AA16D9A6F2E4336D6955D017C517506C051DA380318A52A687B68A68A6E3B5ED542124D5E1469D5594AF1E048B83DA42547785AE94CDEAC4552F7D2F16DAD6AB108FB25D11D8548602E8285E81F251EC03D910EDCA52E7AFB6A4B815F3E6CD73211915874151DEB41D58E2AE87C962A8F08DF2C3C71F7FEC98C8663DA056601D715084340D22947F648B56FE6820A1BCB5C5560F97359810BFDC82DCC7B9CD625BE926B04381D6084617A72E420984566A684FBB02AB68B99B0446610725D4DAAFAE2577DABB1EF7942AD08A9DA00B5D9F6B59A04687AAAF56986894A7D082123D8D18A3D0870A5EA33B0A45175327A52581BA8B9050EB78E5276E123EDD7D28908D045AE22D6E1268C54A50BE1220899AA25F291E80BED77A6F2D558CB69B6A1DB946C5B251DFC907EA10140B41211915E376E9D2A556BB766D17E74002267193684ABC155652F629C9A75A65235BF5B7444CC2AAF8B75AF2A8E03CB7DF7EBBF3E9C9279FECCE579C07896A62E72B51543D141FE188238E308582D49D978454E2AD7C159F409D85CA57A84A89A692F252A728A6EA84541FD9AFF8063A473131D41189AB96574AB83540500728C1958D8A4FA1A872126889BA56F928EA9B96668AAD6C136FD55BAB8DD4F12AB2596A2C87B8B757EC8340A99D837EFBEDB75DE42E2509A20276FFF2CB2FEE7F858CD4F240ADD5960068599F8443499D9136D548B0156C45AF4D9238456BC1B5D450EBB5D5C9693427B1D4765A8D5C25D61A792B088C924675FA91B84AACD5112A088EEE46D459A82C95AB7325E8DAC0A3602E2A5F1D66B4645122A7202D0AE7A8BC14B94B235B8DD015B92B8A0D106D02529017E529115647A20E401D93469A2A53C165F4B7C4508163947F9487EEA0C44382AA0D462A471D8C6C175309B6045165EB188D86B56C32124789A7363B296F754AB249DFAB23126BD92F5E1AEDAACE9A5A93C8EA0E409D8B3A27F9450CC54A62AF3A8ABBEE7634D2572C604DA768E9A78ED19D8882EE48F44910F08940A915E8743849C2A48D373ECCD7EF4A3E1A592BD29846DAD1C87A579647DE10F0950002EDABE7B01B0210089E00021DBC8BA9200420E02B812481D6DB8D434B9A138D125BBD43F32EF58140D804184187ED5F6A070108784C0081F6D879980E0108844D2087406FD9BA2D4724BB501030C5118A27A907044A07812481EE39E633BBEC884CEB39FA539B78651BDBBDE26F3B03B53C4C6B59A34D0F05C1A3B5BE5A179CDB6BC7B55141AF454F4DDAD4A06DE4DA2451987253F343A00BE2358E850004D24D2049A05B0E996C1F5E7B8C8D9EB3D89AD6AE6A87D5AF9E6D9F3621684BB43674BCF5D65B6E1DAB767069E75C93264DDCAE3AED0C536C676D858E5E63AF0CB4A9429B34B449415B87B5414431A2B57B4DDB8CB541449B0824A0DAC1A7EDCEDAFAACA4E3B56B51C768A79A369068D384DE1E2C9BF45D7E13029D5F521C070108C481409240676DDE6AD5FBBE69D52A94B31FFB9E92649FC4308AB52031D63666C544D0AE31EDECD2E60BC53DE8D7AF9F7B8DBD624F68C79BB6DF2A69E7DAFCF9F3DD2E37ED4CD3CE33E5A11D631264C5F950BC05ED3E53D20EB448A0B56B4C82AF2DC5DA55A6D1B4768C699BF2C08103F3FD6615043A0E4D0E1B200081FC12C831073DEEABE5764AD33A39CED7565C05B2D1765C05C351901B05F151DC0AFDFEECB3CFDCD65AC54E50AC0A1DAF2DC31AED8E1933C68DB425E8C3860D7379286684A63624D08AE9A1EDD2DA82AC91B93A03C583508A5EB5A511B7B6F00E1F3EDC89BB5E95A500398A0791DF8440E79714C74100027120E0C52A0E6D9196786B34AED80C0D1A3428143B04BA50D8380902104813012F04BAB8D820D0C545927C20008192208040970465CA80000420500802087421A0710A0420008192209024D05A8D115A5200F72831C5119A77A90F04C226C0083A6CFF523B0840C0630208B4C7CEC3740840206C023904FAF365EBDC16EFFAD52B065773A638827369A12BA477362686A22D74469C586402DA613C69D2246BD5AA5591F30A2D8324813EFFB9E976EFA9CD6DC0C4AFECDE8ECDAD5EB5DD5C7DB50E596F6B563C0DBD2F4E2F19CD2D45AF338A2328043A8E5E29799BF47670BDC19C142F027AB72529994092401FF3E8549B70456B7BE4FDF9767AF37AB67FED2AD9476B37A0E26668B38876F4DD7DF7DDEEA5A3EAF524E07ABF5CE3C68DDD4E42357E8D50264E9CE8DE7EADB73A77EBD6CDBD9C349D09814E27FDF894ADB795472105E263159620D039DB4092402BD468D53E6F58A39A556C4EAF0E49474B7815284923E9050B16B8DF3D7AF4703137B4055CAB2514752E12E8112346B8A0491A711F76D8616E6BB8822AA53321D0E9A41F9FB211E8F4FA42033D4D6B282546B144A0F310687DFDE5F275D6AC4ED51C476A7A4391E4A2ADD653A74E75C18BF47AFBAD5BB7BAC8744AD3A64D73236AFD2F2197384BC4EBD4A9136B815610A7281CAA22E7A90E152A54C8C1418D28B7F94B71C8C8C870771AAA2F299E0410E8F4FA4561841F78E00177579D18461881CE8740EF0AD729EA9C46D9E94E3B1B417FF2C9272E509342A67EF4D1473674E8501B356A9475E9D2C545E8D38FEE10F4604902AC8EEACA2BAF74C7D4AE5DDBFAF4E9636BD6ACB19B6FBED956AF5EED824029ACEA8409135C1C6DDD3D2C5AB4C83A75EAE442A516477CEB74F3F4B57C043AFD9E9348EB7A4A4C08749A043AFDCDE1570B7626D01A358F1B37CECDAF2BEEB446FE125AFDADBB028535BDE79E7B5C4C6C8DB6155255E2AC39F6D1A347DBE0C1839D40EB2EE3F2CB2FB7962D5BDADCB973DD485A3FB366CD722155DBB66DEBEE3C24DAA4F41040A0D3C33DAF52116804DAAA57FFED25048938D6AD5B6755AB5635FDD6685F3DBC42A4469FAF5FBFDE854ED58FA63F3495A1E334E2D6D446E5CA95DDE74AFA4CC72969AE4DC7EA1889B7460D3A0E81CEEB72DD75DF23D0BB8E6D517246A011E85C05BA280D8B73FD228040C7D35F08741E02FDF9E79FC7D37345B0AA79F3E6D967B38AA30820033A15818EA733116846D08CA0E3796D96A8557A5D5AD7AE5D4BB44C0ACB9B00028D4023D0795F27A5E288993367DAA1871E5A2AEA1AF74AEA398D5651E93576A464023962716CDDB6CDCA646404C989298E20DD4AA520102C812481DEB465AB55EBF3A6952B9361EBFB774AAAF4800103AC7EFDFAD6BD7BF7A4CFB5A350EB86F5C66FAD6448779AB772832D5F97654767D6B08E8F7F6063BBFF168005814EB777281F021028088124815E9BB5D9F61F34C9BAB5CCB4FB3BFDF6704D19EA4DDB999999F6D34F3F3941AE56AD9A7BBBB7DEE67DDE79E7B92D9B5AEF3B64C8103BEDB4D35C5C8E74A5E3864FB30FBF5F651B523A19043A5D1EA15C0840A030049204FADC673EB6D7BE58EAF259D0FBC4EC687691406B67DC871F7E68471F7DB4CD9933C7962C59628D1A35729B37B4A9A366CD9A367EFC78B79EF898638E298C3DBBF41C047A97E225730840A098092409F4D2B559D6E6D129B677F54AF6CE556DAC4CC254B476DA69A345F43BDA8CA10D17FAD1E60B4DF62B66876258A46EE32C66BB0B951D025D286C9C040108A489006F544913788A85000420901701043A2F427C0F010840204D0410E83481A75808400002791140A0F322C4F710800004D2442049A0B5842EB454AB56ADEC2AF1903034EF521F08844D801174D8FEA576108080C70410688F9D87E9108040D80410E8B0FD4BED2000018F092409F4DC656BADDDA3536DFDA62D967577E7A46AE98D20F3E6CDCB7EF16BF4A691E820C5924E8CBD9C2E265FFDB8DE662E5A6D671D54CF0E1BF2AECDED751C73D0E972468CCBCDEDC5BF313679A7A6E9FA9C346992DBE54B0A87409240EFF697D76DD59D1DEDFFC67E6EB316AFB1B7AF6C935DD3912347BAD7405D70C1056E3BB7760F2E5CB8D06DF1AE57AF9E6B18DA45F8EDB7DFDAF1C71FEF5E1795AE74F5E84F6DE4CC1F6CF55DA72699C043C27479245EE5BEFCF2CB76D96597C5CBA862B266D5AA55BC4EAD9858C6219B24819EB374AD1DF9F07BA690A3A923E80F3EF8C045B3D3BBF6147B63ECD8B1AE2128AEEED9679FEDEA2281D68B5157AC58E1E272C42D21D071F3487AEC09F98D2A08747ADAD4AE2A9539E85D45967C634B200481D69258DDD12A068EEE60A38440C7B6D915CA30047A3BB665CB9659DDBA757340D4DC5EF486EEC42F57AE5CE90247EDE89CC48B456F11E72DDE856A9BBBECA44481966F468D1A65CD9A35B3962D5BBA32A74D9B666DDAFC36BD976A885ECD3479F2646BDDBAF50EEF14259CB9050BD3F4E082050BAC478F1EEE6DEF854D0A4C3678F060EBD2A58B356CD810812E2CC8989F87406F77905EB973F8E187DB4D37DD6477DC71875D77DD75F6ECB3CF9A2EE68B2FBED8CD59F6EEDDDB1E7CF0417BFAE9A79DE8CE9A35CB5E7AE92517BD4FF3F11D3B76B42953A658BB76EDEC9C73CEB15EBD7A59DFBE7DDD05F9C4134FD825975C62F7DD779F2B51F9DE7AEBAD2EEFB66DDBC6BC9984655EEA085A7E79ECB1C7AC7FFFFEB6DF7EFBB90EB943870E56A3460D173AF79B6FBE7142AC51AB845CBE97303EFFFCF3EE554DEFBCF38EA983EFD3A78F55AC58D1962E5DEA62A32F5FBEDCBD624D0FD4D5564E3EF9640772F6ECD9A629C3134E38C11DDBA2450B77AC3A7DC55DBFF1C61BF3055C22AD69C6C4C4083A5FE8BC390881DEEE2A8D86C78D1BE72ECADAB56BBBF9F69E3D7BDAD0A143DDC525D11D346890B56FDFDE5AB5FAF52D2DFA5C6F94C9CACA7217982E565D987AD79D1E940E1C38D0162D5AE4E6E875BE8ED7C5AFEFDF7BEF3DF7D203AD7C89C39B68BC69B1C56068EA085A235EBD68425305F2D58B2FBEE844531DB646B9EBD7AF77A176F500BC69D3A6B661C306F7105C3E9460EB6F75C037DC70838D1831C2BA75EB961D9637BA03D36F897724D0071F7CB0EBA40F39E410F7807DC68C19EED98EF292A8173621D0852517CFF310E8ED7E89960DEA628C045331AFA38B4A17A5DE2023418E56A8E8C2D6C3D2CE9D3BDB6BAFBD66A79F7E7A763C6C65AB63A3F3D5014471B3A3DB5F95A9D1B77E482547202E73D01A317FF9E597D91D7E711040A08B83627CF240A0E3E30B2C2921027111E85D515D047A57504D5F9E0874FAD853729A0820D069024FB10526804017181927F84EE0D5575FB5AE5DBBFA5E8D1DDACF083A2CB72609F49AACCDF6F58FEB6DF3D66D7674E61E61D5D4CCD8A8129C4B0B5D216DB0D283C050921E424E9F3E9DADDEA138747B3D92047ACCDC2576EC7EB5ACDE80F1493B09B5AC68F1E2C5A6DE590F35F424FBEBAFBF764FB9B506533B07F5E4398E2F8A4DF417021D58EBA53A10089C40BE045A0C860F1FEE56253468D0C01A376EEC461FC3860DB3ABAFBE3A5BA0759C845B4BCEB4A44CAB21B49E54C22D01D78A06C54190A05F7FFDF5258E16812E71E4140801081481409240BFFAF952B7CCDFC7480000071A4944415408FFBCE7A6E788C53171E24427CE5A642F81D6FACD175E78C1054F8A46D0D10E2A6DF0D0C27EDD76299D71C6192E129ED608FFE73FFF71427FD5555715C1ECC29D8A40178E1B67410002E92190E321E1A62DBF8A6A85B2658A649176D669E386C4392E09818E8B27B0030210C80F015671E48712C740000210480301043A0DD02912021080407E0820D0F9A1C43110800004D24000814E03748A84000420901F0208747E28710C04200081341040A0D3009D2221000108E48700029D1F4A1C03010840200D0410E83440A74808400002F92180406FA7B4CFBD136DE32F5BF2C3AC588E295726C396DE7E52B1E44526108040980410E8ED7EADD56F7C897BF8F5CB8EB2560D6A9478B914080108F8410081CEA740972F9B61B7B46F6CF74F9E67BF6CDF0E5F5417BFD2ED486BBB6FCDA266C3F9108040A00410E87C0A7493DA556C5DD6665BB236CB9DD1B375436BD3A0862D58B5D1AAED56CE9AD4AA62F5AAEE66173D3FC3BA1F9969FBD6A8EC824EED2C21D0815E55540B02C5440081CEA74047BC1BD6A8640B566EB4DE1D1ADB8C456BAC53B3BA56AB72799BB36CAD8D9AB9D8F6D9A3A2CD5AB4C6F4F283BC12029D1721BE8740E9268040E753A035C571418BFA3672D622EBD2A2BE7DBA648DD5AE52C1366CDA6295CA97B5951B7FB1792B3658950A656DF9BA4DD6B1591D7BFD8B658CA04BF7F545ED2150240208743E05BA489473399911F4AEA04A9E10088700029D4681FEA0675BDBBF7695705A13358100048A950002BD1DE7D8AF96DBA52FCC742FCC2D8934E0E466764DAB86255114654000029E1240A03D751C66430002E11340A0C3F731358400043C2580407BEA38CC860004C227804087EF636A080108784A0081F6D471980D0108844F00810EDFC7D4100210F0940002EDA9E3301B0210089F00021DBE8FA9210420E0290104DA53C761360420103E01043A7C1F53430840C0530208B4A78EC36C0840207C020874F83EA686108080A70410684F1D87D9108040F80410E8F07D4C0D2100014F0920D09E3A0EB3210081F00920D0E1FB981A4200029E1240A03D751C66430002E11340A0C3F731358400043C2580407BEA38CC860004C227804087EF636A080108784A0081F6D471980D0108844F00810EDFC7D4100210F0940002EDA9E3301B0210089F00021DBE8FA9210420E0290104DA53C761360420103E01043A7C1F53430840C0530208B4A78EC36C0840207C020874F83EA686108080A70410684F1D87D9108040F80410E8F07D4C0D2100014F0920D09E3A0EB3210081F00920D0E1FB981A4200029E1240A03D751C66430002E11340A0C3F731358400043C2580407BEA38CC860004C227804087EF636A080108784A0081F6D471980D0108844F00810EDFC7D4100210F0940002EDA9E3301B0210089F00021DBE8FA9210420E0290104DA53C761360420103E01043A7C1F53430840C05302199EDA8DD9108000048227804007EF622A080108F84A0081F6D573D80D0108044F00810EDEC554100210F0950002EDABE7B01B0210089E00021DBC8BA9200420E02B0104DA57CF61370420103C01043A781753410840C0570208B4AF9EC36E08402078020874F02EA682108080AF0410685F3D87DD108040F00410E8E05D4C052100015F0920D0BE7A0EBB210081E00920D0C1BB980A420002BE1240A07DF51C76430002C11340A0837731158400047C258040FBEA39EC8600048227804007EF622A080108F84A0081F6D573D80D0108044F00810EDEC554100210F0950002EDABE7B01B0210089E00021DBC8BA9200420E02B0104DA57CF61370420103C01043A781753410840C0570208B4AF9EC36E08402078020874F02EA682108080AF0410685F3D87DD108040F00410E8E05D4C052100015F0920D0BE7A0EBB210081E00920D0C1BB980A420002BE1240A07DF51C76430002C11340A0837731158400047C258040FBEA39EC8600048227804007EF622A080108F84A0081F6D573D80D0108044F00810EDEC554100210F0950002EDABE7B01B0210089E00021DBC8BA9200420E02B0104DA57CF61370420103C01043A781753410840C0570208B4AF9EC36E08402078020874F02EA682108080AF0410685F3D87DD108040F00410E8E05D4C052100015F0920D0BE7A0EBB210081E00920D0C1BB980A420002BE1240A07DF51C76430002C11340A0837731158400047C258040FBEA39EC8600048227804007EF622A080108F84A0081F6D573D80D0108044F00810EDEC554100210F0950002EDABE7B01B0210089E00021DBC8BA9200420E02B0104DA57CF61370420103C01043A781753410840C0570208B4AF9EC36E08402078020874F02EA682108080AF0410685F3D87DD108040F00410E8E05D4C052100015F0920D0BE7A0EBB210081E00920D0C1BB980A420002BE1240A07DF51C76430002C11340A0837731158400047C258040FBEA39EC8600048227804007EF622A080108F84A0081F6D573D80D0108044F00810EDEC554100210F0950002EDABE7B01B0210089EC0FF036DA3CE30CB0602C40000000049454E44AE426082 WHERE `app_id` = '6'; -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000001680000012C0806000000EE2C29AF0000200049444154785EECBD07985C57952DBC6EA8D039A8BBA556CE39675996836C30C1806D8CC3100C0C434E33FC93FE6F12330FFE37BC37A4218C8D033080C1D8B2B171002CE728DBB2AC9C73ABA33AA7AA9BFE6FED734FD555BB2575CB92BB35AA82B6BAAB6EDD7BEEB9E7ACB3CFDA6BEF6D60885EB13BB6073E4C78A601D83E0CCF80E9039E11C0924F4C38A605C08411F80810C0E04F60008105183E8C20800F1B811CE7C30ABAE103088C5878570E10F8308C52048103580E3F95FFCB8FC1D358300C1B3E7A6106162C1FF00D0F401C7E1043607A809196F3C5DD243C38F0631E0CDF542D32B21D18F7D2181D0FD0DCE3A0335688C0F0D91898B0E049CB72AF5C0FE47AE0BCEC814F4E8BCCF4B7EF0E86E4A2BC3DEB8E1D816F98080C8B180CD333041C5D9320EC0B180B780BC01134F93E60868818185E088E1602D84040E07541ACF67D82B70D83C7C04760E409221B410AA6C177D4790358847F04BE8FC0F678115881058FE00F0B084C48A39046E073E1C8938522301CB05582F37D007AC594B17863CF0174984918310B81C7EB5AF009D6B957AE07723D707EF6C00507D077ED0994B54B20B4607A81401E41CF277ED29C860F33A02D6DC0353CB19E2DDF80011FAEE9211073D704021BB012804760766897C33613083C176EE0C2B763E0B74CCF4310A441FBDA342C3866026EE0C13003048101C3A4B51E082E7391E0F9D4EF2E2C0B705C1B26AD737E66A8B6F605E825134661EBBE43E88C17CA31B2BCF8862C30B957AE07723D709EF6C08506D0B8636F209C062D509F904900239DC0F76833F3C785E959423D109079A8007400B8B68BC052562F7C521C363F15F0B682344A3C179E6DA1DB00D201298B18EC208698E7A0DC74916701C71C07BDB6095AF2088A60F2DA6E1B4ACC143C33819E20015FAC765740BF302F0F1DDD2E3C338EA02F400740C24B63F954654177DAF9F0030F961583EF04C2CAE45EB91EC8F5C079DA03171A401B77EE0DC44A3600D315A2412C66E16D058A099C81B2A005A05DB1A04DDF16ABD5176ED8156A83C7D0A8B52C1BBEE7213FDD897F7CD72CECAC69C1833B8EA1CD8EC3430249C7C3F25185583C65040A8A93D8B87B1F5ED8D78AF678114CBF105ED08B3CEF383E75D12404AE8D751B0EA0D1CC9376CC1D5F85E5E392B8FF89ED684B94C3336815472CE810A0974D1983CD7B0EA03B5E048F0B0E2DF31CC5719ECECA5CB3733D10F6C08506D0E65D7B03D9F6FB2E92A91412AE0BC37709D1300D039E69A33399079871F537795F3AF482187C43CC6E18A055EDC3F0153D625806E0A430A3D0C66D37CEC6EE3A17DF796403F69AC5E8461CC54E37FECF876662FD935B51D3DA814F5FB702FFF2DB6D386C16C30C12308C1E94FA4DF8F92DABD1D191C6771FD880D7508E1E04B87CD6447C6806F0EFBF7C0DC70A47C1A3639100CDE7C7E644007ACB9E83CA82A62F53AD26390E3A37D3733D703EF7C08506D0C69DFB02C3F061B91DB87EE1447C607A12493FA43C60A0C907BEF8EB6D48E5952A879E410B9A0EC198B01F34B44DF2C5A44108944100C3F451D8D3822F5D371F9D0D298CF4DAB1E18D8378AAA7046DF142E4F5B6E03F6E988D679FDF85E30EF0CE55D3F09FBFDF8966BB04DDBE8DB8D786F72D9D808B475968D95F83DADE387EBEAF13A9781CABA78CC34D734DFCEB2FDF406D4925FC8056FF89009D24C531798CA2386205F0CC502A22FC46CE49783ECFCF5CDB2FF01EB820011A2E926E07D6541978D7F42A24D38E58A49669615F0B70EBF63AB4E79522F0E96A235D403504019AD486098B5237D3814FE7A049D43630D36CC7D7AF998D6FDEF53CD6CCAAC6D4C9A3F1CF8FED423A9EC09462139F5A568D31234660774D1DEEDB741C134795A0B327C0B3C73A5062B4E11BD72FC06F1FDA85D18934DEB17629BE74CFAB688F2570F1ACA9F8B39906BEFEAB4DA82926C511CFF21B94EB690E3A07D017F84CCEDDFEFFC81EB8D0009A4E42133E4A8C1EACAE32B176E22824BB7B94751C98A8F312F8DE6B7BD156504ED20326A570E49A058809D0593DB472345222E7E183D3F270CBF2B1787C73272A8A63583831894FDFF512F2E301FEF2BD73F1E853DB5196CCC33B574DC2FF7E602B6EBC74165E7861135E748BB1A03A1F7FF38E69F8E3B66E94DA1E2E9E5E847FFAFD4E6C6F6AC392393370F3AC18FEBF5FBD82C3A5A3E0D2B1498947487110A069412FCB01F4FFC8F999BBA90BBC072E348026C54180B67BDBB1B02885198900452E19683A0A2DB4D97978E4B88FD6781160DB80A7647614AE09BF21AF501A2194878702A7079FBB680CBCC656EC74E2703D0FEF5E361ABBF7772375EC20AEBC7401BEF6D327E0C48A307F7415FEDFF74EC08EDA1EDCF6E8661C0EE2F8C8CA3128F55CBCDE6AA327D58B8B168C4071CCC0F7EF790533172CC64DB34DFCEB2F5E464DE928F8A0059D03E80B7CDAE66EFF42E9810B0EA07FB22730292EF6525834A104B3CA02C425C084BA3603DD00EEDBD482B49D0CB5C62AFC4F685D58E24C14AC0EE2C243C7D18D2956376E79E732DCF3E04B38E459481BC09C71D5F8E2CA52DCF7C0ABF8C88756E1972F1EC09EC3CD9834B202372C9F80E3AD1D787CCB51EC69E9C547AE5E82471F79053BD27948DB0646C55D7CF3BA79F8D6BDAFA37CEA1C5C37DBC437EE7E1D35855514F385DEC1302231624153C5D191E3A02F94A99BBBCF0BA1072E34808EDDBE27F04C133E290BAF17063D7D0C27F13D188CF6A36ECE64F0099D7F2A1E4549EA18319854E1D8B4A4FDB83807E35E2B568DB23179CC48FC7E43233A8D387A6D2096EEC0D7AF5F80C79FD88DCE542FAEBF72018A933D38DA968747D6BF84CAA23CBCFBB269F8D5639BB17CD542FCEEF1FDA8B31370AD00899E66FCD5958BB0E9600D9A8D625C3E2B0FB73DB015C7F347844A122E126AE1202D93F05CAC985CAD22094F00E8210BD8BC10A64EEE1E733D70CA1EC838F3DF4A3F5D68006DDFB93BA096382030D3720E3B2FC848E818C742EE42E91FC8430B102A37621873187E28A1D92E980B8324B66B508A6781E7A2742FCFEB45400588C148C4B45CCF372D04760CA6EF21F01C04B6054334D631A419BC627A30036AAA1DC633226D9960C60ECAEBA8A90E2CB6818B890B33F0256F47CC0BB0724A15B6ECDE8F365AFE565CC2C8E9C00CE30E33923CCD5D2B9D5E56AAF7B6FC2E1709E999B7326873DFCDF5C030E881306A22D3121D49A1A61583D0B29B5D9D868754EAA0E6DAC7A70F899535241765C7C4EED81DB80468432549A29E99FF95FC1BFC8D099328A313ADB10693FEC2A5255387EA6C5AD71AEF088AF2A7B26E331992784265ACCB7F1470F2453D3503C2B968D007A93E31E53D15B0A871548E91187057A21DD9F62088C3F2022C9F320ADBF6EC41A74D999D5296A85BCB2C412138EAA112695BB808A9B69EC3F7A3F1E9C36082E59A90EB81B7DC0382137A471BCE1D0689454E1C450FF5FEC0E760F0C90B0CA0AD9FEC09486FD026D6C9914817303B9DB29409D04C76C46394F0596F5574E72A1863C225E6D208D986307824F30004A54F0468D229D44DCB47C46B02A92070F8C0981F247CD14A968304D4A87D563942C43A97DFD946BE6CD85E80A533C663C7AE3DE8B26C3812B26E48DE0F394D36895EEEF7AC5113357072BF67C65D6843E4C64C76777D8A3123D3F364E6667497AA0DB830E422625C9F72EC059F9A3A24C6EC905C947D14BF9DE9466D655932C844108C16B30268041E83BD43EB59BFA71D837AB50C019ADF531F85917D2A039E4A51AAED5EF594C4FA0DFF27A02B80CE4522C858C9729CB678FB18ED593E2B4C7F4ADAC38C096D62071EE22EF9730F6ECC80CB044EC2ABD3F9990D6A1916BF2B376B9FDE191E0C4C9433CCFD9E7B46031A0394E09E04CD749EB2BED6B48E021EC87C743E357348B072482ECA21F79947360741600B0093C755004DDB9499E708148C1CE47B613AD113D6515ACBA1C9ACE90BD2256F829B28ED116E77C23BEEBBA82A4E4A511C4C0DAAC19DD18BEAA532D86552D88905CDBF0DB826179010A07D0B0101DAF4E1584C830AD8F2B5E1144918AE6619888EEC0373BFE67AE07CEC012D79157A347B030AB4B5A1161AD9326D355E0CEC666F7DEFDC21C1CA21B928BBE468437DC034A1CCC96C48427CE50A0C100F1D810467460F12FC420B3AD397CA7A95ED89847B872C44F421F101841CB402DE88234EACE390E2D0DF059D824C37CABC195E98EE34900C784C454AA7A1247292AD912116B6D26573E556ADE1596D9FE70D44A2CD2C7A261354BB014C72EBC326E5A81EC1391B3AB76738FFC7809A7959287B33EFAC8C394E3FF9119FD2E09CE463AB2A87042B87E4A2C4C48686BAC0800DCFF560C74DF801415A25161238A5152BD55068851204C9F512E8C284FC3C4A142012DA0293923D2AEF0498D5DF1E734CD3E127CB6810FAE9A29FFBB06D0B8EE3C0B419ADC816510512A8A4FD868118131D312FB4654ACA53A63B65EA3CD30AD4F98D9858C75C4E4CCB86492589D0DEB4FC5D499D1A786A30B04D02DE62D8AB36EABF4FB68E6BAA458A1084F7D6F75C9A92899E5BBFA7AFA5CF23394B42FA46F52F171BB6435BF87A4868764E1DEF33EFAADC83B0392133C5CFB80352560AFB599D5FAF8619062B7C966AD154F711EE58C2C55203A5FA2CF4ADF242B218EABF436B48BEA317591FA66987FDA8DA1C6D83FE9D0BA5EF7B52CC41164DF514C2E3553F64CFA9EE2B7A8CFE5DB74DF56BC4F71B5E57F529FB246B04E8FB55FD1CED9FF31F1C55BF0C8884D004E439385E194C7CB6966872A99CA28748D178BA9795474815E890CA1EE177D41C50E3E664AFAAAAAA21C1CA21B9A802E84631482DCB82EB39A1EA4B292ED828710F1274D9971CD85234CA874DA0745D58026EA1A0261C1FC2251B047B72BE66F87D5FAEC187177DE907C2F76DDB0EF33EAB24FDCC96E79B74EE5196C7B25510758964D163651583B23A5AC774519AF0180169B3AC156BBB28BED90F3D906AA2EA89A9BA3B7A6D9EA3BF575F00EF0FDC4F046D0D646AA04601592D568A42E2FBBA5FE5186EF7C2C542FA2DDC1D084FAFC13C8223AC2C230BA506B030519538D043054E94DCE6F1A6C574B0A1FF20036491F7C3052BFA7DDDA610FAD5E409C1BDEF738CDE6FE6B3C8C8566D668E9750EE18AE3DD1C54A0177E439F5E1C0F4E4CD4CE4485BE4ECE1DF99059563532F466187B0CFA2D739291AE43E18540F48C2487892C387F357CF778E2731EBC4C7CFB91C3EA78867508F01CE8F53194C55179A055D57DB18D8E2C9736158317802684AB32103DB8E21CD20955072C7D54E56455AB3BE0268095C09C1978068D931B1F494354D8DB29A70323168E7FA1E62B1385CC79187C889AB141DB4D643558658C7363CC9FD41300E0364EC185CCE3926E1A7A8841699CB14A8016C2B297486944A0C5C59A12DEAB025FB5EE8AC147F647691E0ED3A4E5ADA9351E0458625277A2AE5A0BBBB53FED51699B678792FDA2A947543163B02B19BB11015C829CB512896701B28D63017C2D06AD0D6875A2CF46EC310508F8296E7F988C763B240F2A5813F0BFA6AC1E4B5FA82A6BE86B23C9555DE7711918537B298CA330AD5363CA70649DD2E35548213BE93DD3D850BA858CB6AB1E9BBC3E0F9F9D2A0291658E4FA5100EFBB28E8FBD08B9EFE9B6D8BC5380E15E0F3EFA88576B2730E0A9172079FD003B296DA406B4B3352DDDD2AC56F38E7619B70B9401BD9621F314B8D4FDF77C5382B2D2DC5B871E332464C7FDD7BC159D08D4DC703234823F0D212364DF506C19225AB3888E92CF4600B18FA6E0ABEAF26683C1693BA827C59EC685ABC0104E8BA7B52B0E3545410344DA452291414E4A3BBA757A80C9E3F9D72E4779ECB66B51306AA10944DD21A161C97F23E17F9090544298545D28E98D0C906528E02A2980124F84110834340E7B8487AF0520EE0D0824FC0E5CA1E33614921DAC82B00BA7B7A909797CC58B6D18F1558D8282E2E423CC66394E5AA64276A9B2C4669C60912EE1CD4D9B29CBB06655AFCB26884AED43E4E92701D525BC590EEE00E820B1FFF55DF535C3BFF16608B7CA61743B5D81134E937085B1D5E53CE935926420A20D3DA2CF5230C5164F1E079B860D242CA5AF9EA3EB58E5D6FB2A34CA48C2379B66A57A65E590A47EE295411292A253C5F8606D2540C0F0B7541E177C2BD5064039DDD4AABBE0C9F56781FB268CB82F0E696E6F0F6ADF70077D8FBF7EC456F57376C93735DE56B7768B0C46292972766C54451253B2A06A2596A47D3D4D484B973E62863EA2434C7C8CA5143C2360CC945F9381A1A8E072652ACDD8D96B66EBCFCCA265C71E51580DF83279F7C0A8B96AEC2BA071FC33BAEBC0C7F7CF4618C193D56B8E2B56B2FC7EF1F7C08EF79CF5528292941437D1DC68E9F80DFFEF65E2C5AB404E3274C806D5978E8A1DFC98ABA68D142CC9E3D179E949FB270C7ED77E283D75F879FDCFA137CF92B5F41617E3EEEBAEB4E5C73CDFBB06DEF11ECDE77185E570B16CD9B8E9EDE5E6CDA711485C545282B8CE38A4B57E057F7DC8F92CAB1E29C9C376B0AE6CE98863BEEFA3592B1189A5A1AB0F8921588053E1A0FD7E1D9173661E9CA155879D11294971487A0A90096A0D1D5D585BC3C16B415EEE14419A7800B50565E86782CAE060E9F56264C2A941646385C050A04500231690E8E38E59C543B095AF43AA827B4ECC39D48067043D0D3F487DAC22819627F0C9D962D4639BC13E899108F32D63AF7116C5BE4BAEABE14588A851969C389ECE6891249C5D084C79F009C272E1EAAFD2136862B9B8E57D256B87A04E174088FD17A790DEC72ADCC795431062E52C46EE5300EF97A2F14D9469F69664555EDE8F3B4DF3A425DE0672095B167D76EA47A7A90306D668808A94A139E01D8B1189C545A7C4C2AE59A32CCB8DBA9AFABC7FC05F305C44F068855552387042B87E4A21C4BF504E8202D72BACECE1EDC7AFB4FF1852F7C113DDDEDF8E5CF7F8A4FFCC567F1D9AFFE3DBEF4854F61FBA64DB8E5968FA1B7B717C5C5C5B8EDBF6EC5ACD933644BF29DEF7C170F3EF4206EBCF146DC76DBED48C61372CC876EB80E9FFFFCE7F0D24B1BF0F77FFFF7686B6F432291C4473FFA51FCAF7FFB377CE31BFF4BD21DFDEC673FC7273FF971FCDDDFFD2DEE7FF419BCEFDA0FA0C00AE0F7B6E181DFFD0ED5539660CD252BF1A95B3E8A1FFEC7D7B1EEE1F5F8D047FF0231C34251D2C30FBFF71D54544DC2B5D7BC176DEDC7F1D2E6ADB86AED25B05C1F1FB8EEE3B8F7FE5F4BAE10521EC2AF1B4CCCA7ACA9CEAE4EE4E7E56B7C3EC1132DD66710A0ACAC14764CC9F5387A3A3A3A919F9F8FCECE4E141515A2A7A71789784214267B76EFC6C44993D0DB93427979195A5A5A51565A2ADF7B62FD13B8F4B24BD1D3D38DFCFC027475F7A0AEEE18E2311B63C68C81EBD2C36A21DD9B4651713EDADA5A515A568AEEEE5E241209A19476EFDC81AA5155300C0BAFBFFE0656AC5C81BC645C38F6C3478EE0A9279FC6B8F1E370E9259728478CF84A2D74B4B763FFFEFD98BF6001DA5A5B656165FB3B3A3A6417316DDA34384EAFEC82FEF8C73F62ECB809983163067ABB7B108B5978FA99A731A27C04E6CC9D2FF7C26D69575727F2924901BAC71F7F1C6BAFB842EE2D954A63DBB66D72AFB4947A7B7A905F5080CE8E0E24F3F26457C5EFF5A65378E38D37B062D972A41D07896402DD9D5D28282C14ABF8D9679FC6D2C54B104F26A4C27BDA75B071E346CC9C395316D5981D83E7BAF258928904DA3B3B505458848E8E769494940AE7F4FC0B2F60F9CA1572EFCDCDCD58B972A5A2D5F8284FE27BB8C071F6F4B79F49FDA0EC15EDC1E1FE74F7EE3D6241C7E8A0374D89F1756C1A4E2DD87FF010C64F988251E52588B929E52B0AE7584B730BE6CD9B2B7320B348F76949E5C88A21C1CA21B9A800747D6D4085867472E0E0073FFE216EBCE923D8BA631F5AEA0FE103EFBD0A1FFDCB7FC4973FF3E7D8F0F493B8E683D7CB13193F763C366F7C03DB77EDC04BAFBC8C19D36760F1B225F8F6F7BE83471E78101DCD2DE84DA7F1C52F7F113DA914FEF33F7F805FFCE297F8CBBFFA2BE1993FF1F18FE39FFFE91F71FFBA7B5151568291D5A3F0FB071FC4BFFEF3D7F18B750FA12B0D5C71D1522C5D380D77DC711BCAC7CDC38A95CBF0E5CFFD396EFFCFEFE2CE9FFF0657BEEF7A246D0B13C68FC0873F7C23EEBDE731781E69985E58B142785E370A0BF2F1AEAB6EC4430FAD43DAE9128F7F945E601F747777CB64EF6F5088E45A00BA4C0089AFFBEFBF5F76115CA82A2A2AB075EB56F93E0166EEFCD9387AF4286AEBEAB16AC56AECD9B317A346560B20BDFFFDEFC1ED3FB91D9ED3231CF29871E371ACA10D89A4896993C760E32BAF61ECF8A978F0A13FE1C337FF19366FD980850B66A2A6AE160112686BEFC5A73EF111BCF0DC134249D5D4352330E258B56A15B80BDAB97337BA531EF61EAC4141320E27D581B815C7F4E9D3316FFE7CB1989F7DF6591C3B760CF3E7CFC7E6CD9B6551A81E3D5ADA77F1EA55D8B7730736BCF232521E29A17CF89E09279D42220EE425E2282C2CC5A1A37502DEFB0EEDC3DCD933F1EA8697F1FEABDF87DFAD5B878B2FBE1875F5F5282C2D41322F894B2FBD14F7DD732F46565662D7CE9D9831672E9E7EE619AC5DBB5680998B426343038E373763F1E2C502BEF3E7CD934569D1C205F8E177FF032525C5385A5B8BD56B2E456373336AEBEBB174C972ECDBBB17B66162D3C6D7B07CC9521CAB3D8645CB5760D78E9D183F6E1C1A1B1B71D38D37E06777FD0CD5532660DFDE7D98396D3ADEF5AEAB32522F4196219B7DA7C7C1E17384DEF1291F4A8FEF637F5D235CD29D4680A963AA4584CB8DE19E3D7BD0DDD589189DFE1C99664CEA91BEBA710BAA274CC52B7B0E62ED82C9981C4FC3A0892D34A925CF8BE3523BD2FBBBF70B8E836E68AA0B028F8E3A03899887471F7B04A61DC7FAA737E06B9FFB042ACB0AF0675FFD477CF50B9FC11FEF5F874BAF5C8B82C212CC9D33171D4D0DF8E92FEE466D731BFEEA4B9FC2F77EF45F9830753ABEF2E7B74836BC4F7EF22FF0C5AF7E055BB76FC7FE03075131A20A9FFBFCE7C57170CB473F8A7FFAA77FC02FFEFBE7F8BBBFFE1ABEF7DD6F63E78E1DF8CEFFFD36F2478CC23616927DF24F282BB691EAEDC6FEFA1E4C9D360533268DC1CCA953F01FDFF901565D76050AE2092C5F3E0FB7DCF211FCE4D6BB5158948069B9686AE84249693E0A8BF270D53B3E88871F7E10DD3D6D198765742B7D2A8026A213D4694193CF25886FD9B205CF3FFF3C5CD7C1F8F1E3D1D6D686499326A1BDA3031B37BE8A2BDF71255E78F165AC5AB95AAC095A7274722E5EBC100F3DF8200A0A929836653265D9D8B4750F8A8B92183FB6022F3CFB1C4ACAAAD1D4D48DCF7CF616DC79C7ED58BD7A311CD7C581C30D48E69560CD45CBB073DB6BF0BD340223819E548059B3660B2575E4E8511856125B77EEC7BC3933B1E5F557B060DE7CB11A972F5F2E2CCBA64D9BB07DFB762C5DBA542C674EA677BEEB2A34343460D2C40928CE4B62DDBA7B317AFC38CC9EB314CF3DFF02E6CC9E8DEECE66343735A0B878041A9ADA5058568EBAC65A4C9F32095B36BD8E0FDF7433EEFFEDBD282D2F434D6D2D0A8A0A3172743566CF9E838663B5D8B97DBBB463DEC2453870F020AEBDF65AB1B8B90BE1E240FE916D7CE699673067CE1CB1EE274F9A80DFDEFDDF58BA7409B6EDDC85254B97E3A5575E41D98811282FAFC0CEED3BD0DED28A919515983861826CAD17AF5C29F754565C22BE8BE5CB96E1B1471EC588F1A365B7505D5185CBD65EAE92D41273CCFE29A3E1038C43DD124D6EA9B40F622B0726BA8200871B9BD1D1DB8BAAD222549716232EEC9F8FDDBBF6A28B16347D4CCC926327D0E0D9786DDF514C5AB612EB37EFC59A91492C8977C92E89AC1A8D1F8EC11C40F779DE750D750135C4B661C1F37AE0B8295C7BDD0D98BB6019BEFFEFFF86EECE16DCFCF9BFC657BEF859EC7CFD357CECE31F4347AF87BC781E62E9767CEE2FFF166BAFBE0ED7BC7305AEBFF123F8C6B77F80A533C6C2320CBCFF9A1BF00FFFF40F22ADF9E297BE8CABDFFB7EFCEDDFFE1D6C3B869B6EBA01FFFAF57FC1CF7EF653FC9F6FFD6F3CFBCCD3F8ECA73F8B471F791877FDE237F8C0F51F42FD9183D8B96DA33810A7CE5B81CB2FBB0C66D08BD6C646FCEC97BFC1473FF917B002A0B0C0C22BAFBE846FFFDF5BF1EDEF7C0BAFBCFA1C5E7E6933FEFDDFBF8182C23CACB9E82A3CBEFE8FE8E9ED384167A92DE6530134396A5ACB23468C9041C4EFB4B7B76754016234F85455C4433EBB03050585B26BA01E9C8A0E7E87D6444141015A8E1F17E967221E87E3F848516520F4743A942DE6C17503949695A0BBAB1D011CD9C2DB89022A9750565282544F1B9DE268EDE886652785FAA00A87DBF69E942399FE0AF2E2707A7B51985F20967E6161A100344159288F50D9C07B2B2A2E462A9D42716101D8E88E8E3698311BB178A1502BC9441C81EC4C3CECD8B10B400233E7CE426FAA572894643C26D7E1B9A9DA217F44C78F158F212F3F1F5D6DED2A9B2059C7507E49A72B81D971A8F2005C4A24439F00DB979FAFEEABA5A116C9FC7CA49D344C2B8694E3209E501489A4E7F294239AFDCBEFA743D59015EAF34B8A8BD1DAD20A2B3F2974515141210A8B0A613068893C57CE821EE00AA072DF5022C5F99CF2811E8FC5A54915062849C4608B23D81380EEE97104A0391E0233861E3B1FAFD534E2D59A26380523B0ACC8C09523131248465A84738B3BBB050B16BC4979146DE0056741D7D613A04D91A97102E6E527B0EEFEFB306BEE52CC9C3201DD1DCDF8C30B1BB16CC912DCFFEB5F22EDA690760C7CE0EA0F60DEF4B178E4F1E73077E92A54151B78E4F1A770D12557A224E6224699146CDC7EC74F505C528A1B6EB8110F3FF298586ED5D5D578F0C107B1E6E2D5D8BCF90D5C7ED92572ED071F7800EF79F7D5A86D388E7B1F78002585F9F8E8876FC0B66D5B51505225562A8182C073F73DF7A2A5BD0BBEE360D5454B71C9256B70E8E011DC73CF3D9830613C6EBCF166A452E44E13B8EFDEDFE1BAEBAE851F38F2F007437168995A79797946FAA565679A9F8E4AD5A2722EE56C53C34B17D4CD48DB94870AA49C2D2B749688DC904013AA2CC489C7F692665165C624AD95687B55C51B5A1FA28E08AF132AF7F8B14A6F1591C569899D76146AEDB796BE8904D067508F9247392EB96BA5BC30696E8A32841F33D5ABF227125C0528459A670BE72B4DA1F6551C770C1072C5A32F1AEC50A3CD7ED2F2BAA8CC4FEF6CB2F240B5B5566D578E521D64A39CAFA11A260C7C60665C19CF5A19C2558D3C68E8A02525E205D42B850ECBD07F3B4094BAE00E535239E6C7099F43266A97F923C38C0B546FD127211302D8B977073ABB3BC549089F11CA31B81C87DCB6C492E87192E8AC3F84716509799FCF954E425AD00B172E1443E5642A8E0B0EA0EB1A1A5C7546510000200049444154A4DFC4692225ADD288C52DA9F547599D0483089FEB2261873EEF80BA525FC0D2B69348CBB3EB8561D15165C1777A2437B365DAB062319166893EDA8A094FCBB923123B9F9394166A4A30810E1F5A95D43F8B1C8F2B752FAD44EAA855208D254807B1A294D6DA80EBA6A57D0408FED02BCC874CD0A723CD32132A7A2D5045080603D03A228E1A4DF2C61A70952A4CA90594B39152210D88BABA7956879CD53A0BCE654047A9F542DD7998AD208C055196B568AB55549CE4E8962016AD0A51EA09514744C08B8E4A3EA98C0C2F1230A31126AAF638F177AE06047F95BD906D5116BE8A209511C0A2C1E17555702875EA0602EAE523CE2339948109A2A157578E120A99C54A4BE0C2FE8C6A944505A3B5E33A4252161D755DE93B06E09CF860144067648E2A5042B740DEE7B5D8759467E65E27EF8150ADA4D2FE86CF5F829CD402CDE72F8F87633F949CEEDEB70BDD3D1DC897DC38E4A1998C8D81676925DB74F360D1F0400ABE38EC95ECF4F8F1E3426F9D0C9CD9C80B0EA0EB1949C8AD89610A27CA008F9809A47C0B3689D3809183DCDA73DE7AEA69486875D692E17B12812C1255EA1BA99650323665C7A98929A1C02125A0408120CE7FB536991A583BB4729585A5020DC42453E945C374A3E1DAAD2216C30010ED00D461D0EA7B0449E50552C11E94F56435C87CFF541487BA1E904C72CB1D17303E31B0236B256B052E4FCFB673E1B1B8CDD3C09389E653E7142062ED30C1441549990D4AE1E7EA5ADADA544D611E12DA7FEC578217393C02A40AD737F9CC189E2F61E00A7CB426BABFA0141DD999B1AAA58A0E0D682EAC5EC602E67352A0479DB71CA00296B8B0CB24A5A5AC646DD2BB2138F3583B8C94944C85741B4964AA52D0E8A098EC62E7A988520960F061323294D6B658E059099E3E5E162F2B1B85496380C02BD18AE1B392C5A4CF4E820609ADE9E1943A6B38AE1399BC641C67A2B808FF47B34E3867A571E738945C3886856DDBB6A0A9E1182C5124D9F0641CFAF02C5F9C8A89A04076B3A6EDC1F019DDAAE626E71839688E8993A9382E40806E0A322946A94E24584BC5923047744475AB763B5A00ACB688922E29CCC92CE93168432B447E93737C20F9E925AB9ED64786E0AEE04C4F2565D9C93161218113077678F137552AD19652348A30AB283ED980D0007DAA55FDC4EB4713FCABC45399D00909C0602765894FE9FBF07D65656A678C8AE79429206C88B26CD52BCC3E284443981E3693DC8AA0CE6AEB74D0BCF99E070602CA532F3668864608339169FD71F894327FF639715FAD76562831704854012B2AFA5427D751BB87F062A155A78A49A89F4CCFF6C94B2E5FD3F2EA131A97B3A04F352694DE9CE0AB94FB993E660A87481F33B199C7374C0BB66123C1BCEC0890A67F811A24563B224D85184C2F2E94896F3952D554EF8424A0299485E6288EF0A9D4372880565B4FCAC76981B03395E52B53555754914003992EF209815881B2215557F83B7F344087F455F6F90F40CEA4CEAD4B6A6990E2C4631B95E2528D99F0481941CAB3AC2AAB88AD1C8924E177F83E37DAFAFD81C1943A6A008D3EE9E922E01C1EA3EF417F45AAC084FD295793FB5220A668067DFD907B1650E2D6918B940668F6532C6C2D45FE9C12FC2EE5930307C4E883CA66F0D6DF0FBDF9D2F97A915625CFFAEBA1930374DF4FC25E8E24CC917BCFE425C9463D66AE132E649A37D100ADFA2FFBD4C48088148ED0967D966EC905AA0C6C26A84E95DDAFF6AB069CF3228211F0E6ECF4D51FB2BB33F9AF0E5221F58C5EF8266D700BB6A7AC6AF2CF965076E1F923D183390B3A7C323535B5B2F1D4B38C734FA66264604BADBF30CB98CA4DA5C85196C852095058922AFB7B66029C4166CF30E15DD81C02810ECB25C8B265FC3B4C8023EDE4EF0AB06038DAB43AF15FBE2F56ABCA171D7DF5A53BFA0ED8930D94810DECFE8FCA5AB66A4792DD59848B5308327DDF57E35F5255090073D1CAE6EF561A6DA9809301685221FD03E229DBAF2D7C098BD7246498794EC05903B4DE2DBC95DE50DF8D522D1AA0152828158CFCE8454E28A3EC7D457766274BFA7EB6C6E75BBFD3F3EB0C99F918199302D22138EB11A07C1280E19960D24865A8D1D863621C3EC31E0434A0E84CF40C511AB9060DC2887F6200003D7AF4E8B762319D71E70FC945D9DA9A2347250B27FB9F966FC6EA08B7B6B2C9A48240B25165EB0AAA49A1F32F2BEB3BBAD154CEAB3024F744488CEE5123166A68A185F6B3B26D08CA7C84FCC9FEAE2C4465C567365D3A07B58034918C5554486EE9BF35D00FEE190D9CDAD0E78D2E0061C7462FD9F74987A39D695589D46AC086DCB1F69E07CAD1A6905CEF6E140BAD00984BAC025045A2A8BE622D9CE806FEA4832C82E16A4286A966254DAB0668A673E533E5F21CAEC6991266FD6C34A2EBC20046B706E1687227062E300028AA9AC93A5BFB3FA98C5F5D9F3462415B67C98018DCE839BF8FE6580895CF6280C9EE555200AB872B249A446432777BC83CC9000AEB8DC20D77E2266CDF81E9AB5D2C0D08CFF4C2CA496AE7A75FA73398A64D9B3680D174F6FB7D482E2A968BE7078C91A7851CA3B34E78896CF56BC5F5867F0B8884535EB6DAAAD9EABF2AAB9D721265362D91CDBBB287B204A2FEE69B102BDC9EF3B167DB13263E5519B20480543BB34F560F8AD0EA0BF8E0D91EC5D166817E700F6F50B91A64E046288148E18213AE2AB71C1248217068199340636812AA09A2CE275B46BDAF08FB5E81B95A086937ABA710D22302A30AF0F56B20009D59A1335FD2B520B3A58C94D5AEB9F4F0C0BE273F39C7D1EF03E86F2164A878C5880A71B4669A73AA7CC13A4D8AC6880C05C7020EAAC90492CC9A73063BBCC18D9EF3FB688E3FC9AF2ED588D4B8F48D00AE04F784554AC5925600ADE80F851196E8A55D3874720BB6F8B0FC380C563AB21CD1F7730E683FCB407BEA82731206046849AA8D10A0C3CA24B47E09B59932DA5A66A3805539079557F7C422647C3F14E4840E860C1EBD890FD5567066F3DAC7426475952C0FADE451BC3E1F2EDBA9E127C2C788834C5321B2048520CD0584D2BD810E85F0B8C1300499EDBF5EB04EE2808A027458BD8B002D478779B865132083BECFFB62488B7E43BB10430B5A6D361543AF16C9BEFCF9C0003A5C84F5E6441638FEA1CFCCBFB2EF651D767DFAB5BF7E3B4DDF9FA0CC300C09A1AF0C015A9F4EAB7F4261885AA735B91C2E6072EFA195A74C02E52F1140103A4E5982041BE9A5CC42AA7C18629064EE5FE7B9CA9A1DEA43E5BC8DBE04FCD9538A810B8D15A5C936C2F26DDA07C10557B547AD1C6AB9D6171DE4183D47876B0B9AC06CFB6ABCD17A26D7CC71C92E568E4202B4026FD360EA5F0B96AFA4750468D7225FED2A800E2C78A6A3C408E1181F4CF32F3C80160D58C69E1B4C5F9DD36343FB326B699E3815B4FBB29F3664BF99FD30AB3C39A78D969367D52683B9D69B5A1DBE31E0F70773B1411DDB5F7F2AB07B6B0ED4D33782003DA25C25A9123DB6D4C92467AF803460DA5ACF459239C23D1601B2C53AA6049450E791EE126061CA4B214825902661262562368805303C2EFAAAFEA66FF60854D2FAF37C4B0517191E1C8325D768456A9A4F296484680B33E2F1775FA2197DE43954D204024E2C1DC71212A6DF1B169BE077E388F3BAA0F2C191B6F17C043505D867E2D83D7D7F9EC9117AA12298EAA79EB1C9FA28B5942840CD35BD0B14FB2E637FA95DA0F21B9DD9E8B9F0007AF024EB993CE7DC77723D30E81E10802E2B432CAE2AED5053CB4DB7728492C2F2E47F3673968B3F995BEB009E945FE3DFCCA346B0A0984B297824A882013596C0A330A2DC25CADBA6C06CB837B14427C39C32122024E9593DB11E2DC60804363C46808685217CCB861B3A3413928D8DCA06A50B367C0658057019394A791A532B505D498ED6244FCB95801257D202C30BA007FDD0CEF11772007D8E3B3877FA5C0F0CB4071440974BFA5372F12C7F462B98F440E0C69010DC2485159360169BD49AE72288113C59F32EA5822024F4DB02989FD86718B12311841262CC0458BE0F8F5579EC84142596326FB0608679525C568263C08CE1C363CA5AD742CCB7E45883741B2D738B414C74E64AD48CDC2203A5A4F005CFCFA01809EE8949D42E1712F1ABB00832819DF41BEF2B0CA91E681F5D68C7E500FA427BE2B9FB1DB63D408066D6BA984D8066D425A90D715B01669EE4FA26D0F5C243CC60A161153599320C38868F98E18A554A0A83E5D93CA601302DC445FEA52C5C265BA2A5CCC843CF2419A1E809FAA1854FB57C3848C064A10982AD41E0B6D422C1A34D0781E521CD7C14B4E5030B0E65A901291213A6D7058311B1661C1E2D75522EC217F08E68462B073679DBCCF67FD83E91A16F580EA087FE19E45A90EB01E90101E8B211B0E3AA928D68894C575401293F0F9B0F1DC3D809A351650135F58DC82FAB40257D538C5E630E10AF5734B70C83776D03BB1B8FA3644405CA8D5E98BE0DDFCA037C077104E84CB958BFEB200A8A8B60F6A6B070E64C141ACC57DC0327518098CB2A201E6AD3060AEC380A186D6B2B30A7F829E57A68696A911C312D6E0A13478F45CC49B3C4808442D35A4FD0CA6638BE70DBE4D229355332560DD002DC8375645F40E32507D017D0C3CEDDEAF0EE016541974BC22DBE62BE299C6DDA32D0E9E5E3AE675E835F58882FAD5D88F52F6D42C58C299859508896DA3AA13C465755206EC5D0D6D28ADAE606EC69EDC0C4793331362F86969A26C46345A8AC2840DCE9417D5B177EB56D1F2E5FBD18BDF55D786DC3067CE283EF83954A61D7A1439830B20289FC7CDCF1E48B985655894B664E468BD78BFA86364C193316AE67A0B7B31BF52DCD38D0711CAB972E44C3DE8328CC8F614C4539EC745AC57A32302914F7280B5CE988A92C516A921C409F6A54E6007A78CFD95CEB2EA01E20409795D382563C7122D48CF75A369A61E3F9BD0DD8535B878B668D46434727AAA64C40FDD114DC861A54240C1CA86FC4ACA52BB069E3765C3A732C1E7E69032E7AFF5AECDCD786B2740F7A8ED561FCCC09583E792C5AEB1BB06ED7015CBB76352A61E0B6479EC682C54BB1F1D9E7B16AC10CEC3978108B2E5D8A4737ECC692EA4ACC2E2BC5DDEBD7A372EA421CAD3D8E6B2E9F823D9B0F624469110EB776209DB450525E81EEDAA358503D12D3CA99D03E0597E6B6A5B2228A7055386856BAB66148442C017AF8A83886DB70CB01F4707B22B9F65CB03D20003DA20C71164A60C63EF2C6868DB41947BB6FE3C51D073165E174FCE14F4F21595C8485CB66E3E13F6CC6A7DF7D1146270CDCFAA7E7E0E45763E9DC6A2CCA4F62FD1B5B50346B227EB1EE65DCBC7609E2ED9D385C7310D7AFB9081D0D4D58B76D073E78D525280C4CFCF8F10D88578E859D7630BFCAC4A123473165F17CBCB1AB0E2BC68EC484823C3C79E81052455578EAE9D7F085EB97E0F0B643A828CAC7E1960E948EAE46636B37F26C0FCBC68D41351CC4DC4E04311329910CC6956430B4A24D3F9653710C60A4E7007A009D943B24D7036F470F288AA35492B9D3B94606809234D788A1BB278E5776ECC6EC15B3D0D0D689BB1FF8136EBEF92ABCF8E201AC9D351693AA4AF1DD077E87F1B317A3C4CAC315D32A70DFFA673075F5123CF4E81BB8EEAA5528365C341F398A259326E2787D231EDCB113D75C7D05F6EFDC276599E62C5F8CC3358DF8C09289A8AB6F42C9C89178F9D55D583E612C9CF6663C5B578F194B57E0DE754FE02BD7AFC081AD7B505E988763ADBD983079060A8A0CEC3DD48232B70BAB275723E675C3B17CA49983422C66EAA8C39067F2D0B4A07332BB530EAD1C40BF1D332F778D5C0F0CA00708D015AC05198F878A6552002CEEE0C2718AB1F7680D468EAB4641C2C6ABDB77A37AF26494C62D3CF3E246B4A5BAB07AE51254968FC0734FBF2015D6118B61E9B2C5303D032FBDF2AA1480B864E13C8C2E2E40472A8D9F3EF52C627905185354842B972D15A7E46BDBB7A2A641D5585CB97C198E377563E38BCF63ED6597E2D1D7B7C08B17A3BBA3131FBC7C1E9A0E1F415E2286960E075E5E01F61EAE912217572E9A87729F4EC694241272A804A1CA431C9F94E0A9906715AB97A337721C74A407825CA0CA00A02277C850F480D24157C08A33FA8E0127B4309D30DF754C74D192DB8FCE433B8EB4CF90EE00012B9A1B012CA707B604A5C4E1B01C172D56AA28021BBECD1C113E620E93F850E86C209D2850DFF303E4F7F60AEFEDB322107F3C5F2479CC771CB70CB8E93482780C8E94D83260A628C663CAAA001EA576B625CE4CB627964E23CEEA4160C27A06A730288541350C9566F2AB306D6F2E37C8698759CE823E6D17E50EC8F5C0DBD3035BB76E43597905E2319644A2A44D0135E5692A631F256BACB8C2506DFE8FD6A7AD6A0E3236DB7354A635D3822B55839881CD86EBC5C439C702A7F4D049FC0BABF2F02B4C1064FA92A58D117F5211C473E53A22F4E341AC7EC3D42E6E0AFC85D91224B045624F54D93387FC3283651825E805520351441C4AFD0CCB6068B7CAA92CD546CC407EA8E6C8BD4EDE033980CE8D8E5C0F0C931E501CF408C4241787AAFFA89214A9E2057C4FA5220DDF973C10444E09F98011A424308521D8C44786A1488E083FAE127A09404BB85F08D290325FB0C2F25E52D98BE5B774642097002E0EA654ABB62C55EACD60997616DBE575188CC2F34A522B43405782533CD688D4499A780E43F280B0982E53AC7251A0E48E7548242AD2B64F59FA69983CA2B7BD1939807EDBBB3C77C15C0FF4DF035A074D2761B490AC805F08D8BA66A3543697A443524613362303FD9444F149AD4D29344E25088192259798B343E71557D767CD4D55E95CCAA8ABC83EFE97F51833694E7DA13B6C9BB407230D6320A60B28FB2C861C87C3A2C98C966178B700B44A764BEB5D650FA1354F27A12AF7C4058596B94A36145ADA7DEA66E6C688EA811C40E74642AE0786490F9C0AA03560D2824E330844786226295296AAAAD012A6C8B5543E69DFF5108FC7F1C4FA273065CA148C1B3F4EA2FC68814BBE0E46F78596B9048DA85475F07D172FBFFC0A66CD9A8392922295E6D530E18456B3695AAAF8AF1FA0A9B109955595C24BBB8EC48BAB94A6643A4875300708091AD793A2CC3CB76DC64470175D84A295D687C9E31816CDC801F4B0780CB946E47A200CF52E67B2A4FE2DE8D6D656747676A2A8A808A5A5A5686A6A8293EE4549692962F1189A1A5B85022170575757CBBF6DEDED282C480885C06AEE1D1D1D30CD382A465489C57DFC783D6CCB4245E558016BDB36E07A297475A6505A3602B53547C5F27579CE716391EE4DA1B9E9387CD394CC7B3FFAFEF771C39FDD8CF2F2327476B4C349A75152528EBC8202D4D6D6C9398B8A0A2542B2ABAB0BC75B5A609B36CACB4A60DB266AEB1A6411E1E77C298B3EF7D23D9003E8DC58C8F5C030E9815359D03D3D3D78ECB1C7306FDE3C01DA442281BABA3A8C193D0A478E1EC182C58BF0DDEFFC101FF9F047F0D20BCFE3CA2BDF21E0DCDED581DE5427468EA8C0D62D5BB160D142D4D51EC7FC790BF1E28B4F63CCD82A343634A2B878242E5ABD1AAEDB032B16E00F8FADC7CA956B70EB0F7F884BD7ACC6A1C307317DCE7C34D5D761545525BA7D605CF528DCF3AB5FE0FDD77D10B66DE1E8C10352B2ABB1A9050B97ACC4F7BEFF3D5C7FFD3578FEB9A7F0B15B3E86679F7B0963C64E42477B3B2ACB8BB06DF3464C9E3A13F58D8D18376E1C66CC98213B819C359D1D9039801E269333D78C5C0F9C0AA05DD7C58B2FBE88CD9B37E3E28B2F467D7DBD58A4C9988DE6F666AC7DE73BF0D8234FE2339FFA349A8F37E29E7BEEC1D469D3B164F912BCFADA4B081C47B2E45D71C55AA41D0379C902FCE557BF8835972C472A954247872F00B965EB462C5EB600AD2D1D58B17C357E76E79DF8EC5FFC390E1D3E842D3BF762C9C20578ECE107912CABC4B5EFBF1AFF7DE7EDF8F4E7BF2096FDA30FFD4E9231054602575CF501FCF6BEFBF0D5AF7E06B7FFE407B8ECB2CBB073D741AC5EF30E14E4E7A3B9FE307E7AD77F61F6DC85686E6943414101AEBDF65AA16F72AF1C40E7C640AE07865D0F9C0AA01DC7114A63E4C891B8EDB6DBC492A6D5396EEC68B4B4B5C08CDB78E0FEC7F0A98F7F0231CBC20F7EF8038CACAEC67BDEF75E3CFDCC7A549597E1B55736E2E69B6FC2DEBD87515D3D16F7DF7F0F6EBAE93A710A767604183D7A34EC18B5CB293CF6E8E358B5720D7E7E1701FA933870E020B6ECDA8B8B562C474949215EDBB203F989185E7DF179DCF8E18FE08D37DE40655909AA4655E2C9F5CF61CD6557E1B7EBD60940DF71FB0FB176ED5ABCB17917162F5D0D27954663DD416CDFBA111FBAF1C348A55DA16348DB685E5DF3D37D9DA5A7B3AE6981EBA2BB7DBF3BEC1EF8001A94B3A007D049B943723DF076F4C0A9009AC0B565CB1671AC15171763C28409929E948EB7445E0263C74FC09EDD07B060FE02AAE6B07FFF7EA41C173366CEC0DE7D3B50555181B696361CABAD45CCCEC3ECD9F3D0D3D386030777239D4A63CA94B9A8A8AC90E4FECC087DE4F0318C1E3D11DB36BF8145F3E7A0BDBD0D75CD6D48D8163ADA5AD1131858306736EA8E1E46634B2B2AAB2AD0D2D8A07288C4F23071CA4CECD9B3074B96CCC7E6CD1BC549D9D2DA8963B58D22A79B3D630ADC5427F61D3822CA137E5E525222F446B4D279F4EFFE2A606B550B9F8F9225AA57F4F7B7E3D99DAB6BE400FA5CF56CEEBCB91E18640F9C4E6647071AC14B6B8669298AC68E0A0A8FE5AE62E2642390493E694AEF442297554C284063E27E06095205E2ABE4FD9EAD3420810B532ACED251497DB4AF825A6C1B69DF43CCB4E0A41D98F1047812566181AD026B24B528AF6BD82A809BD23BB64F17F60D98D82E8680118A3CD6776032D31D152711CB37CA4347EF876DD780CDD3EBCFA2601C2DC4FB3F01A873003DC849943B3CD703E7AA074E07D0046672B4FC57C9EA426B31D42E53FFC008424AE2A4D0298F11C064515825C3531AE7B09A49A06A090A208ACC4EE9E32885E33122A7A37E5A6A0E32F2C554E5AB2CD64464815A9E5B05BEA8C2ED61E56FD16CF37B0C3B67860F5E538135B5D7AA7D59B08D82B006DEBE20ADA90FFD39FFE5317A21E2DF3C46EBC3FB5AE2E7EA999DEBF3E600FA5CF770EEFCB91E18600F9C0AA0F52968351384C8490BB0B1ECAB1B88748D793B98E7C263F0475891450246CC245CDF95A84082A5C54840021C43BA4D43E991791C0BC1327787D42F540B00C19AEF13540316919524FBA658E5AE43B025887BCA2AA625CEFC1C6C97EB23C6A016C9C7A18E13C33CD461335085750F696A1358A3C02B581F06E6E8DD4054071EE5A9D91F1AA8294FD4FDC2F734F00FB0FB87E56139801E968FE56C364A9585CFD415CAD074D12C62E789F6542A5DAB0D73A6B27DE477DE110390F9220449804518BEA162EEFAEB87B3D9D76FED5CA7036802D34B2FBD24804425876CF9A91BF659391B787DE3CB98B76801D2AE8FFCBC7CB84E2FD2BD691CD87308B3E6CD830707B615C7B1DA1A74767562FA94A9028EFC71D2296C7E6333962E5D269C30ADF454AA17797909A41D0FBB76EFC2F8B163909757887822893FFDF1115C71C53BA4B415230993F124528E033B2F0627E52066C410B3633870703F468F1B0DD771908C25E132C9522209DFF2B179EB66CC9C3E4BEE835AE8DEDE5EB4B4B4C8DF1515E4C3036907258694EF516D42108E822F8F2710E7E7E763EFDEBD98366D9A7C475BD6E77B6EB41C40BFB53935CCBFCD782DC671313C4C594DCA54092B2C67DEE067E41B2368F736DF597F1E7765D9E994678C5C53DB70666593FC10612A0A02310DB82ED743636FAF843D57E62591E4B65C724778924A53B6F1BAFE92AE902D303E3C5EA702E8B6B6363CFFFCF3A281A693ADB2B25274D017AFB954246EF3E6CEC67FFFFCE798366DAA2C4994E111BCA74F9F81D7376EC2751FBC1E8D4D4DD8BE6D8B009DB63A7564229D8EC78E1D93CF088E04C5B2B2323436360A2852D23773E64C1C3A74480265D89EABAFBE1AAFBEFA6A065493C9243ABA3A85A3EEECE8C0AA55AB44DDC1F612388FD5D488239094C9254C5FFAE8A302C6EDEDED983469925C9FE7183162842856D8B683070F62C18205387CF8B01CD3D6D621C99CDADA5A71E38D3762CF9EDD3874E86028CF3370D965970BD8339F885029E7793AD31C400F8FB9798E5AA1427FC3D4376126317529499E231B5E41EC8C457A8E1A32A8D39E00D6D278D91BABB9161AC1746089734900DBC0E1A6E3A869EE86A40A62D1D4EE4E2C9B3B0B098B5F51FCABDC6540A80EE956FDDB30295A7A2A803E7EFC3876EEDC29C045CDF0A851A304DC36BDB105EF7ED7554824E278E28927306244392CD3106B3495763061C2445153AC5CB90A058545F8E31F1E159024D81D3D7A54AC4D5A9FEC73022581995188353535983871A25C73EEDCB902D4858585D8B76F9F5C97DF2300D382E5F9C98D73D1E075290524B86EDAB40953A74E95EB2C5CB810070E1C10F0E467047B2E386C8B80B6E7C982C3F372813872E488003B178C6BAEB9060F3EF8A09C23954AA3B6B6569EE7CA952B71F8F0211C3B5623CA163A44B903E0391438F3C19EDFF9A673003D28E838BF0E56C09C1DA2D92D7F08D2DA98E69F19C01E1A8BF2A49A557D13D26466630B2D696EED990C1EC0F1DE5E6C3E5C83B163C7E0E97BD661F498F198BD680E366FDB8977AD59853C8349E309D06A29E229B989C8DCE97900D0EC1F02167F08403A24BAA797A1D5C57257B472F92F79651E4790221D41AB3BBFA050002B9DEAC97C9F604AB024E0F25F8230C18F80CCEB1134F5E7DA01177D4E045B02A8E6816518313748A8242168F318CD236B6A82C769BE587F47F3CA5195862CCD4190A137146D41FA422DB8CA52F6E487DFE7D088C5E2619E1272D05497287EFB7C7DE500FA7C7D720368B7C6360D4802D6069D452AD398501AA181CAC29DBEE1B3DE7258E96200173847874479434E465FD256EA5C6B9280131E5C58B0E004168EB477A1A6A60E0FFEE66ED41CDA2715A73FFAE9CFA36CF27854E52730A9AC445A4A4056654AC36C6F4348E9F4D775A7E3A065890A4153EEC734E1FA5446D031A79C65920429FC8CA9444973089DC1674E399CA79D7FBE005CD4A9A6F95DADA088EA9109C27D1D7051A544147CF93BCFC54522FA8ACAE1A4EDB2882840D70B80FE5D7F4F5F5724857AB88699EFB4EC50B7837F6BCA462F1AE77B6E8F1C409F2390191EA7151220EB2094DCC204682654271F4B1DADE26903E6E7359849D81E3280EE2FC526A9182E1B02AA4120CA0397E1C4411AAE1320B00AB0ABCD41BAB515BFF9AFEFA3BBBB0D2927C0F2CBAEC41537BC0F6E4B1BE68F1AA913B5A96C6D1AA087C743CAB4E27400AD9D661AD8646D5509E854AAD0508D41299C8021E99F30B78576AE46C9ACFE762D513DB2B660A3D17B51ED71EE0DDB5D0000200049444154D4AAD660A9178E6850495F479D0E2ED1117FBA03F4FB5150D5CE3EDDAEE8A2A1AFCFEF472D6FBD109C2EEA70983DFE7E9B9303E8F3E1299D711B0945610E5E99C6946211B469D9F0FD98E2646586ABF78D8CFEE18C2FFA96BFC849C9ED312DB6DE544A1C806C63D2B011B32D183103A6C52D6C028E61E3707B278ED5D461DB2BAFE2F13F3C8AFCA2127CEDEFFF1A87DADA70F1ECD918499998CC6225EFE0A657AC4CBD83380F280E0D40517582BC474A833B8C30D08389F575FA516A9E65932079A3952F82001DD50B47F5D4EC229D0D4F07854441BA6F22237D6CDF6092BE0A0ABD1068C0D4FF46A574FD59CA995D824BA99FDA2168F0E577A36D8D82BC5E104E4A9BBDE511FAF69D2007D06F5F5F9FD32B45077B661087502C600420ED078899AA54A7CB01AEDD2852022974152A736CC0AF7EADDE308A8D27D10070226DA122DBA4B2869679398EFCAD23E5B8FDD63FD29850432BBF8B764E59D57412F6063E5EDD7B18F9A5C528B0F3E0F829347675C0EAE9C1AA99D39114CB324479FE26E433551D0AB20673BF03EE983338F07416B406CBA8BEF76420D4375063B88255B45DFDB5B12FB847170C6D39F7B5D0CFA0EB87ED5772003D6C1FCDE01A161DA47D013A05A0A69DD22A17D5A5052860C86D08CA625B3171BB447AA964EB3A34F7542D88F289FADA0457EDC8EADB9EBE5B5ECD3DEAC00BCD31462D2485C551991DDF50DA3AA997A702DF582C0FCDAE896D876B903412F090465E7E1CB3465649515356C5A6E59891D9F156E5DB2CC544567A78BC0692B05FB7B4AF951A7D3FDA87FDFD3E3CEE7660AD88521C510B5CD32151A7E4C0CE787E1D9503E8F3EB799DB2B57DAD68425947CAC193AFEF4241F5582462166AF6EFC4A58BE660647E3E4C3F04385AAE16950ECCE610B21D7DAEA427870661521012E0E05047A11C565417D0EA5532A76C29233D89A2DBE628A0F4059B28F8F3386EE355CD3D559E89E59B849AE12E40AEE3C2830D2E4474DAD39FC4DD414C8C661EAF9C5516397702BBD0EE1AE28746B5D2DF833C1D4047B5CB7D77249AB7ED4B03682BF37C19E6512B3A4A85F4A5534EC6639F2FF739D076E6007AA03D751E1CA707B7F6A8F7027862672D8AE3015A8E1C444F470FE65EB41C1B77EEC77B562E40B1E9C122A279615922E16569712AB580B68635F5A08196004C2F3DFF8D7AD7A35D14F5EA8B4D1E26F0893A70A2C7472DEC13AD41DAB98A8AB0323A6806AA78E8A07AE35803108BC34BA7D178AC0EA3C64F10AD6C7B7B27F28AF3918C9BE86A3B8EE5CB960924F39BAA167620F77ABE501C7A11D32A8E6C7FAA808C6CA15772B5BAE02CA924CDDB865AF2611498A3C7851E139AF252F239D5EE68D4A0EA03B5AFA2844E49F3B47854CE16D9FD0DCFFB1D2C8CE4007AB03D368C8FEF0BD06D8E87DFBFBA155D8DC7F0D4FDF7C1F603CC5DB10297BCF76AC99D30B5BA1CF9BE038B9A5715E2A13297994A17AB7FB475D6977E885A677D01F664807B3A8BEEC4EF29158A025553723928679FCABA565F730C5DDD291C6A6842AAAB03E585F908622652BD3E3CDF44A2A4141D4D8D284AC6B06ACD4561584AA883D63B8541F0EDE7FAD10F84837EB33281098354CD40F5990230F5CA02960455EA2AE0E7FA460671FEA8C5AC7767AC16137548469523A4E908CE5C84383E993B84B94214D82B7DF489F73E7C764883E896CCA139803E935E3BCD77B2F2DA48E85B386754F45E3696ED6C5E3E4A71F0BC8D1D9DD878A4166FBCFA1AB63EFB0C6CC347D5E86A7CFE2FBF8AADFB0EE3E28573502040A5D23E42B29C655FFDF1DA0369EF401C52FD01FA9B796D5A518A8C20406BE851444700782ED229071E130581A930F92E83596C18561C0E7967CF438CFF26949243941BC30894A3FD793A80960A2AC9642621BD72A8320F8789969656E1AB189E4DF012D0169E5E297914E3A4A4780266C2DDAB4C25D9F1A85BA3922D650E19C8433F0BC7B06DA4CC6841EB17C19951944CE6CF484746193A4E1A9D9D5D72AF8EA3005BEF284E8C1C0C73019C85B60DD52972007D967B3E541E87369FAFF247844A012A0E0820B2D10EF9D033018BFEBCD6191DAC5851AEE85F53A6855F3CF11C2A9379F8D36F1F428FD38D2BDEFF2E548C1D8DD9E327A1BA305F38676616532A87508825E750DBE4FE2CE1B3DC65A73C9D8A04A3A3D094643807F61F94CA1F4C9E934C24D0DDD58DAEEE5E24F312E8EC68C3CCD9B370E4C85114E417E0785B9B64552BC84F0A7875F774232F9184E3BA282E2E92C843665E1B2E2F05D0157D8AC62A2B9860BC61C3CBA8AE1E255B7B866413B866CF9A8BCEF63678BE8BDAC6268C1A558192C2221860063B033B76EEC0A20533D0DCD282FC82128CA9AE04635528A89494A2FC4DD28B6AC7AB1AAF56C0237C78F27E644DD3BB186DAB660C8FF0316903F60C3A5559D004682EA98A16A395BC6DDB360947EFECEC861D8BCBEF4D4D8D282B2B41616191245FAAA9A945555595848D937A63BE0E91827358EB95FD246DCA046CC971CAE371AE56F181B447ADA0AA059523AB86C49C18928BCA7DF7876E6730984EF695D03E11CB45863651595C562A4F0F013AEBF01ABCC4EBA45402A793EF23EDD079E78A2ED64F24B1B7A51D758DCDC81760726025E3B09C5EAC62D62F4AEB18B841B3321C107DB5AA511EF02C76D3804FA5B7BA6C07CB2E710DE1046C6E6EC6983163D0DADA0E6A7F351F5E545C80AEAE6EF4F4F6CA82A31D96EC375A66FC5E322F0F6565A5A8ACA8082DCB0137E79C1EF866800E672A20392E76EFDE8DCECE0E4C9D3A4540BAA1A10163C78E87934AE1E8E123309371545694A2A9A101458595088C18EA1AEAB074D10CECDBCFBEB3B070C11CF8812171987C11A04D82B10C551B9E61CB2E4301B42B7FBF1D00AD9D7EF47B6880D677DFDDD5850D1B3660D6AC39A8ADAB17F46291DA8E8E368C1A552DD5C3C78D9B2006C5B871E305E42D4BEDB334F89E0AA4A3004DA7B27A9D23881ACC0E2E00AA72007D36E75C6885CA2AAC86BF3C6F9D0C5D246DEA13A54818DC38E86BD546D71A0219B780B42CB5A2827286CE204073770F761DAB45CA4963F2983118575488227296E24C0ADBC0506AC169ED6052CD1B6A0B5AB7412F14D265929B38EA08535B7AE971096D5609E3D577B3E58FD4EFD9E7AD542567F3F9BFB573BD19A0B3E62833D6F119B7B6B6A2B8B850F26B7477F7A2A0B01805C924DADB5AC16255AC52523D72240E1DAC454151191C378D823C80393BF2F28A503DAA2203D04A1FEFC120184B84A52D202D794A585965C8005A511C519F0A1329959797E3C081432828C81780E63326D53172E42834361E17EB9999F094E5CD31C29D6AF69908A3D3CF6B20C7BCB5277BE6DFCE511C67DE77FD7C5303B4629A694367784F728199ED6008DC8300E82850EADF396125DA8ED6224CD9B66B6FBF067F12043E2D22BE41AF3713D998617E3756C490B06F1F8EA72A75506827A58EA4AD0A04FB2A324EE4F9CE2D4510BD767F9C7856D5103234C2B7AA68399D1758817A76769E29B77E56874A3F273B1D07AD658A3AB190E4AD9000A34095AD621A565637115F590CA6CD7C1864E27B85CEF0034BC0984E5779F24201E8407A3ED5908E9335DB8329795022696ACF61079C6841C74F906946952BB1181D884C8CC4E2B01C9BCA24E5FD657968064851E171A264F464007D0E6FEB2D9F3A07D06FB90BFB9E20BB45D2D5D8D4B00F3DEADA9A1EE44E2AE3DC09B39A9183E48B7C2B338A7141709D3452E9344A4BCB24593A7F9F3E7D0AB66FDD81CA111538B4EF000ACA8A112FCA47CA75E598D6C626941617A1BDA70BC9823C2460A1A7AB1B0B172E00BDE9DAEA540017F590EBFB3EB7001D9D747D6BD0658136DA36D5AEBE6A87BE8ECB289573D687C0199E70203AE8BE0B8D410769C0884C17763C26748FD41134E2E287901250CCF927FE045DED4048B6B095CA94D0651054CE3F95A25505889FDBE7ABC71477454ADAE9A90C78DA828E3C4BB5C652AD425B83CE41BD28EBF7958A458059FC9C598A43CC8D01EC96B2FDA292720DF52B07D067FB09F4D95269A193A835A3CF7B008325DA340D46740C7100D39BCFD7860DAFA0BEBE0179F9F902A87CB92E5345AA4C618B16CEC7ABAFBC06CF0FD0D1D585A2B212049681C07331BA6A24766DDF8144320FC99262D88938CC942396D345175D84A2A2828CDC290BD07D07EDB99DC0510E5A26591FE765B48FA232C0682083FE5EDF47DD3720E66C0F85C19EEF741674DF124EB2BB892A31987B83F44E8635269805AA36A186E02CA795016821B6B433F64D12BD73FB7C75EAAA2840C7E2340C948350C67D267B1D2D63B52B0DE8DC14B9A5A6BA4869E84995CDD921DB477DA7039873D105492D5C43FBCA01F459EC7F256D0A6782EF86BC0233C829317D36BD27493E355AA2965D74EB1D05223A4EC83912ACC8C3F5F7521687B21C18E5C7014FF995E7A56058069C709CB32A735C6449AAE0663A9D423296276D9482A2A79C8F7AB989B6E05C4FE0413EA0C11A3D0398B4836CC1191F7E2A802695C59D5234C56686979714A3DCE62BC052811C063CE68EB66C780272AAB28E1A8B2A67B4244D0ACD4DF53DE59350E755832953E43503DCCA69F1E6053B6A8A0CA60B941495E395A9535DD7473CA60255B4C2868B07DBC9C50786E88E008379A06945ABF1A7683955C59CD4075FD1C5BDBF85BD3F5D3FA5A6A4476C2B4C819A99D03CA32A761B3DAF4A57A52C77452F4A7281B04DF40978617E6A46B3EAE4552A2BB93A5EF5B1EE53D9CF48908E2AB63B79D2842119A14372D11010073B854F39DADEE444F3A9DF08073739416E33657B458DB1760CAA4C103295FAB44673C87C480465BD15A7C5CCC178B2FCB6E17C82EF05D8B56BB77CB7A4B818C7EBEA112B48A0786405DA8F37A3209184159830ED38D28E23C7CD99390BF1BCB82C1AE1BA71927B7EFB298E814FF5B06D03D9C7464F3A6423F1CD77763A0B9ADF88523799B1422B526A137262AB1458945A1A521A8C5676A86FE7A21C52557CCE921B5A00459F57298C644C33317E48CD69D0572D5640A801FDAD07869C08D01E019A1674184948702650133499AB9C8E4C716852BB2FE0AC0C0DE1D87DAA3BC8BBA7A5A5043F05A86A6CA8F328EB3A6A1845FD1C328FC2EF4AE08B04BFE88C80EA5CAA8FD50C36994A200C14123A4E7D3BFC4C596BD1BE328C98CA2CC842BA6AC9CCD03119795F48E5F0318CACAA1892113A24173D9B00DD97D3CC58BF46801E184885AB683E022464FB9875C044B596921E923C61386868D5688F3D6BBFF1A513A96B2751BF16B4F64F1A90A00596462A2D2E41E7F1767831136563AAD0DDDE0EDBF5D1DEDA81B2912351535787DE9E5E2C993F1F166B4399CAE83FFDC3198E0567CFD4821BF81270AE8F3C1540EB2D7F5FCB50D11C814828130C79770218D401FBACCD487A83CAA13CB1D298A3440A7F49156E876A6749BD2AD9C199EC5E1E3C2B77B32F2DB8E25C0ECB8599EA98749A1236EA8CB58725BA682B481FDCEBCD00CDAA28E2F4F41C09C4E11C49C4188C44808EAB44FFCC5F2ED55428CBA3EA43A977141B42EE9D65B94C29A04B0026FD97EAE9956355F51525C1E43D7177C239C69DA77E9FFFFA727D75AFEAFD985085199E9E8B1C35E482E0AA008129518DAA0801C15D392B1510B35A3A6B188873D6601E19FEED885124D67CB8D3763CA657652A60A0AA72C4E9A7E3E03A7C40470FC945CF04A0DF6421F7B93D5935431ECC370CD07577B03B85970EB7A3B228814595F91813B761691357EEDC9749405D2AE59AD104441C2404660E98BE8BC0A97A364A8F642C020E56D7811BB324E0807614B5CF6C02ABA77822ADF211E3273A93DD903D99018D9BFFD1079D4A66C771C17A809491C56296EC7C4879C8B384813163C7A2EEE831E4E717A3B9AD15C93C0B85F909B4B7B563D4E829282A2AC4EE5DDBB9838793EAC5C47163D0D0D08458220FB1781E6A8ED5A2E6C861CC9B3353E498070ED7E08A775C85E3F5C770F0C07E548D1C85BBEFBE1BFFFCCFFF82AEEE9E30078BE6BB95A578664E455D3EC180173050C5433C460B5A011FCFD9D3D5893F3CF628C84D1F6FEDC1656B2F47797931DA3BDA2470E7D08183D8B2651B56AE58898EF6768930ECECEAC073CF3F874B2FBF02D563C6E29BDFFC26BEF6D5AFE2F6DB6FC79CD9B3B068C142DC76DBADB063163EF6B18FE1473FFE31D6AC5983E2E2526CDBBA45EA1C7EF9CB5F96E2BB0C8C61EDC59A9A6398BF70219A9BDBD1DCD626CED835AB5749D1DA8E8E4EA5CB6F6B473299270652221E135F106B3CF27C9595ACB5588B8A2A150DE9A61D8C1F3F0EC9441C5BB66C5121EB868931E3C6E2D8B15A54565461DAD4C943322387E4A2670AD0279368F505EFB461E058DAC17FFCF10D3CB5AF054536F0C955D370D3A289A02D2C369EA1EC0015B867A0A7B72753FAE784FCC77DA0A87FB95BF620D9BA85DCA00AEFE5021EF28E2C2FA4F669928F4306BE845047DB144AFF86ECC9FC8FC6DE01DDDCA902551860B37EFD7AD4D7D7C99698C55819BCF1898FDF82E75F7C490AC23ADDBD282DABC0FA279FC6473E76039E7FF649E1730B4AAA71E9256B70EB8F7F806BAEFB005E7B75034A0AF2D1D4D8847113A760D3E6EDB8F683D7E1B777FF0A17AD5886FD870F61F4B889983E73369CEE0E3CFCF0EF71CD35D7E2FEFBEFC7DFFCEDDF8915AD39E8ACD2E16C02745C516D818F82641C3FFED18F505E5686445E1EEA8F77A0A0A808A954373A3BDBA5606E5B6B1B366E7C1D25C52512594A3D347D2BFBF6EDC7873FFE09B89E872D5B3623D5CDB9E648D18799D367E00F7F780C13268E97809F8E8E0EBCFBDDEFC288119578FEF9E7049459517CCAE4C9D8BD6B17962C5B26E05B545282CD9B77A027D58BA54B1663FC9851D8B8712366CF9E23FD3376EC3858764C8AEE5EBCFA22A93ACE4595DAEDDDBB77A2ABDBC1ECB9B3B17BD74E94141563FAB4A9983D7B16BEF5AD6F61D9B2E5122979ACAE1613274E92E8C8BFFAEA978764460EC945CF04A0A3338B80C6E49AFC69ED48A1B9A911ED6D6D121C52513512C9927C1C6EEFC6371FDF83CEAA69483ADD981B1CC7D72E9F893256970E030BCDC043AABB17DD3D29E433DC3A163BA1D8A6C2D2373B114F39CB4327858C6B061FC8162BAB43128555C897D192A6C51C928C92BE93C9EBB58C69406832EC0FD25BEFC10C354DDD64B7E959FBEEDCDFF0A942BDA9DEF9F18F7F84E5CB9789EE9D0B32ADBA9B6FBA11F7FCF63E4C9A3205FB76EDC2D8B19370A4E618AEFBE0FBF09B5FFF02B61543E5C809B8E6DA6B70EB7FFD0037DC780336BEB641B2F931E8A36AD418F4A41CA41D17BD5D9D282D299490F8F193A661D1D265686DACC313EB1F477149A954E5FEDAD7FE1F3956BDCE9E05AD551CDCDED35051015EA4266C3CB57E3D36BCBC01F3E6CF47A2A01485C52578F9E5E7B178F1622C5EB44040F9CE3BEFC4D429D3D0D2DC2221DF2C804BA08EE5E5E392CB2E43DCB6F1377FFDD7F8E217BF80E6E34D98336B367EFD9BBB0594376FDE2C69046849F3F5FAEBAFE3F2CB2FC7BA75EB24A43E66DBB878CD1A6CDEB255E8C386C66604A689D5AB5662EEEC195877DF7D225B1D37662C9A9A8E4BE839BF3767CE6C3CF9F49358B16C39B66DDB8AE953A7A1A1B919E3C68EC38B2FBD2014C7DAB59763F6AC9962D92F5CB808C9BC7CECDEBB07ED6D1D9838650AAE7BFFFB063380CFDA201D928B9E09408BCB4F1C0794EE0738DCE5E0A5BDF57865F336C40DA0282F89EE740A3D5E80E9336660F18C51F8F5AB47F1E8CE46142285AFAC998C0FCD9F089B593D597DD8F5D1DBDE8A7CE610C84FBEED916CCAC71F91340FD993386B63E9C413092E937755D59CC9AF4AD27F710304707D2A1B42F916F7FBA1FCC534F9A4B9F41A30590A8CCFDB60CE0A75866C8980C172AC03BFCF5371D09CF0DC6ECF983143DD572843237FAACB4129599A2CEFE22863B49DE2585DF8811F2A13C2283B2A15424E95C680CA10A7FA4C49149936807D452E57658BE3FB2A28EAECBD44CA26A42C836EB40E5AC9459533D0178024AD435D379DE05AA5A27377906F6600CB9B5F8A9F4F3B29518124E209E19BF56E5417B6E5DFBC47D248FA3E5522AA6CF5747E2FF3779835D0237D9876B077FF3E4C9E3E0D49EAB7BD303C8D1C366F8B857AA948A163D5A39356519ABC365FBC26FFD6DCB87A166A8CB13FCACBCA8764860EC945CF08A0C532F5903280A31D2EFEF4FC6B706063C2F4C9889595210D0B493380D7D6869AFD0751D7D286792B16CA56A62A2F86E9A5169CE6E3A82E2F97C913B71388C76DED0F18B202AD676F8A0DB333A9EAB2522546B9664D989C29C22A499289D077AE222C61AA3C14866F432A18841E792D8992D349FDD530E8E11CC6869F4EC5C1894B4754B43E5F345FB2D2492B8056BA6615FAAE25952A784349E4A2B2B393E9C1A33E90811C7F262341951D536DCE70D0043AEDD709E57F2247EBA37A52F7D157AB9C851611A3F07BE1353430F75571E876F777DCC976B219354DA8A07119D92855899463960B82A8B99493491909E1B127A846C26022BEA75FD16B8E1C397248B072482E7A26002D468519A02D08F0ABA737C1F40C2C9A3503F5410A0FBFB113875A7A501533F09E39D331A9A404BB1BDAD05C77001F5ABB1CB1AE56FCE0473F428FEB61C2E891F8C2673E27455915FBEB0A9084354CCE646CE7BED35F0F4432BC72C7C3A4FCC45D79F61C75921D4A852010B74D838139045F7ACD5525EC4C3E92FF9FBDF700B2F3BACE04BF9763E71CD00139E740309BA42952924965C9164507057B67EC2A8FD763EF6CD554D9B3B35B5B3B6B595ECD682C590E4A54A4324951CC0104488044CE6834321A9D5FBF7E396D7DE7DEFBDEDF0F0D7440B7BA01BC57D564A3DF1F6FF8EEB9E77CE73BE379496671E44EC4E230D6DD78C55ACD770A9C758CC1024C8AEEA568781381AD01AAE2C49889CE9BCE8014FD170DC60AA0958BC3FCCD802A9F5D59963A7468A5BFC9F9666F38B6838A1799423B8DCD4130F43BF3FD54DF55DA4A688BE49A6B7D853CF2ABC7B6BE93955CA07149B13DF4E2698EADABAB9BC51177ED1E9B939B4E07A039C663D91CCE0E0CE36B3F7D098F7DF04338373482BF7DF56D0CB82B8463EAB1DB51171BC517EE5983BBEA7D787BCF2E2C58D881E8B1BD3875F408B6DE7D1F7EF0BDA7F09FFFEAAFD1D9BE50E43DB3E441DAB9D22A5A4EE933432D60751ACB9C5574302641D8EC2E647276A9121E4D2511CF01D51EB7B8AA9472B2AAC9A8FCF13C8F2E10E5AB679F299FEBDCB838B815167A99CD96A78599EADCE3818B1568F4F2A41351C602B4B5D5AF150C9F2E684DA547955B25233F790693E6081700CCAE32278D58D6984C3F8B05AA85C80C255E2A9F93CA9A4F26313C6EFD849AFC2C9C719DDE4D80B44A0B5C93562B0BBEDE5DD105438076F05E426894EF58968DEE3203DC562EBBD5AAB75ACEA6CD3B3A3AE6041CE6E4A6D302E82C10B2013F78E13578DCE5A85DB206FFE3855D783D1544D415105D67769E379DC092CC10BEF4D85A5079AB279CC0067F06C7F6BD8335EBD7E1D7BFFE15BEF0879F454B638B68CE929297CE51645E09C9973E33D402669E6A473B7DD16AD2D991CCD990B0D971E0E809B8BC7ED89D1EC412692C6AAA46BDDF2581536E4D39E7ECDA1FCDE25802D0A25048FFE2EC15999DC8C5C1096C2C4CC3CD556E0BD6613425A0CC68528257856DBBF97DAC8BC30AEEA6078AB7F5C55B7FE36299A11E93CB1403B45A2A15075BB941E8B6E232AA1268D439C6255570E9A842035AC697D6A826FF89CF9E49391657825C44927A0B017903EAC5006D160903DAA64D142B8B710BD5BEE24DD35D20E941DADD2165DB34985BDBD94A8F1DAF3D4BA9DE138C322EAE9772C0979FFA213EB8651B8E2503F8E2CE93E876542265F3CAA42604D81C7654477AF07F6CAD414B6D3D5EDBB917FFE92377E2BD37DEC089EEE378DFC30F6251DB42D845A83F85ACA4E0DAE154BBEAD267A65AC0E29620A02A4FB40DF6AC1D11BB1D3F7F6B37B6AC5E819E0B3D180A8D60C1B2C5E8EB0F61F3C22654389C797A974C7ED9978A5F44A77C4E271163F22F3619B124038E85EDB24ACE28248F98ADB44AE75769DD2A118A606C804752A91D0C0C16742BF2A063718D58B7E5AAC49472419880DAE4DFEEDA47E6FDCDBA2ABC249ED02A95CD0ADD54EA59730C64C229414F95D751F0F7AA2083E97C93F861433A9383C3E9C8EF3A84E5A4330BB34C0BD7D9B9C6E540374BF14E82C141B37B313538D96E63762EE6BAA214A99250CCA22349376C67AD95623282AFBA8675A1D0167CC9C531C108A3F3FF52C6862F7FEBFBF8D8FDF7606FC88B2FBE7D065D2E376073C39D25412083ACDD8DCAE830FE6643251635D7E3C5D777E03F7FFC115478B5AF536A58181F9A7847650B5D02E79998E2966B685724FFC77E11F6052B8067EC38198EE0EC4818B9F3FDF8B7AFFC03324862CDB6CDD8FEDB0FA3BDB5190BC8AC111F876C8A55C05063729EFD32C38F6BBD1C01BA4A2AAA28853A2BD79893399E484A12049914645D24D349D93E7BBD1EA1862D59B24C808CB200890459070EF87C5E5CBA7449B4C2172C5820DF9391409EEF8E1D3BB075EBD67CE0917F0F0683C2093665A768A99346CAA418F27DEFB8E30E4958F9EC673F2BC932575BEED36F2093B065EEADC282AAB4D9C10307108F2791B1BBB176DD3A11F54FA6E2F0FB7C181E1AC6E5CB17851B9E4A26F32E12D2E756AF5907AFDF07960BE33BBFBD6B17162D5CA4B8D289047C5E1FF6ECDE0D97DB8D152B5688956BDAC8303B582861FDFAF5B2285DB87041DA9FFF663BB18FA40DC892B13B845EC744B3706844F8CC0BDADBC4374DB70DDB92CF104F247060FF7EAC5EBD5A59EF12CCB4E3FC85F39270C4C5C0E9724976E8C28ECE39818839B9A9DEA61496D9498C25A6760E03F8E62F9F4773731B72758BF00FBF7E07076C7E245D7E649359385C0ED833393446FAF08F1F5C8DD1D1611C397F097FF6BE3B5121FA2A5C4D0B928E6ACB4DB856018FD267665B80AD6B4ACD2A9F322D451BF65CBA0C7F4D159EFBDAF77174EF2ED85C19047C417CF44FFE3D9ADA9BB020E88757028639A46959E92AE77447C9967A967BEB7A001D0A85F09DEF7C172B57ADC2E9D3A7E1F678A5CC55435D3D1289980083DBED456363A38011931C98C1B66CD952C95AFBE94F7F2AE04AF71BAFF5BEF7BD4FB8B70F3DF41076EEDC89CECE4E016E728809BCFCFFB163C7845AC6F30281009E7DF6592937F6E69B6FE2EFFFFEEFE53E133123A6D2B3B43299794780A6D017697FCCB2FBFE534FC9BDEA1B1A70F2F4393434360A08F6F65EC67DF7DD8FC18101BCFBEE6ED4D6D4E0724F0F5A9B5BA5B2D0E9EE6E7CECE31F87DBE3C1ABAFBE8AD5AB56E3995FFE12F7DF7F3F8E1C3982B26050DE399D4ACBA2C636D8F3DEBB02F44C5E617A38DB818BDFFBDFFF7E3CFDF4D3D8BC79B3BCF3DAB56BF18B5FFCB772122B000020004944415442E414EC4E077AFA7AA55E228B6034D537E0E8D1A3089497A1B2A61AE565E5B872F9322E5FBC84473FF07EC951D8B777AFB4EF86F51B70A5A747EEE572BBB07ACD1ABCF0C20BF0070270BA9CF88B3FFF0F7302107372D32903B49AE988DB81B74E9EC273EF9DC0030FBD0FEF1CEDC2BFEC3F87414F0532368F583181C8103EB6B61D7FB0AC127B8F1C82AFA109BFB37A21828C3EE7A814C7BB2BE52B138C9ACF054CA732B1E6D3B185D557D502573B15069780D3E108BA7AFBE10DC5F03FBFF4DF44B272CB96BBB1F5C1DF42F3824634960711607F092B4F09DEF01A8AD9AA0388B3F8B21303F453A8AEA9D57C5C07826541AC5DB3063FFAD10F245BCDE954EC074EF664322D40B36AD52A9C3DDB2DE0F2B9CF7D0EDFFEF6B70574962E5D8A9FFDEC6762C5F1BE1D1D1D025004FACB972F0BD0335DB9BDBD5DAC45023501BDADAD0DAFBCF20AFEF99FFF5980DCEA9F2E0EA44DB5A9C6B038324A8F3A180CE09BFFF2AFB8C2F25E6D6D707B7D08965508E0324985C0C9249E6F7CE35FE57DF99CA4B292331E0A8F60FBF6ED58BD768D2C4A7FFD1FFF0A9FF8C42770D75D77C902F3E0830F62DFBE7D9260C205A0B5B555007AC99225387BF6ACB4C1A64D9BA49D04BCF7EC917F5351928BD6CB2FBF8CAE93A750595D85404539D2A99424A57CFDAB5FC3F66DDB303812029C0E4992C9A4D2A29572CFFDF709C0FFE2E73F977BAE5AB952323AB9436199B686C606A9C148706662CEEF7DEA77E7042BE7E4A65306689E905135FBFAD3697CE99937B0A6A3134B1B6AF1EBD317F1DCF18B08D9CAE04BC7F0405B351E59D581D17814870FECC1871FBC171DE565125252B42DE5D630D5A909CED20873D612539D3E37DBF12A5AA860DA46FA33C2C8E1991D6F61DDFA7518ED1BC0D05004D51D2D18EE1FC1B685CDF0B342B6A983934F78E12FC61535FB3EE86BB938087EB1585C32FA98F64D41218FCF2B02474C5F5682403E7165508B62707058C08A5B6A5A89B446E916301578E8CAE056DDF85E6941F2779E23D9737A4BCE6D3DAD67E36F354C0B9ECFADB815A06F748458015A980E5A9680AE835068485C2D3607D5EC28A4941E2322C6FA8454C1631A3ADFC568DA10BCD91E742110044D8208DBC1F8E6F9DCBB77EF96C587A06C449368C9D37D41F1322E7A6C17B605DF9BFF665BF37AFC3D3C3A8A80DF9FDF5150E695F39E520E4E1201EC2AC927501614B7464A44A754D09216BCB89DD8CEB9AC6A7F6653DA6D686D6E99138498939B4E0BA07574368E1CF6F50CE0F51D7BD1B97009EADADA104EDB30301A4759C0856A770EA19E1E1C387C0C77AC5A847B5676C2AF39A934C9146D4B65B6896FD3F8D7F202EA373ABC4BE7ABF6356B9E2A846B92910930E15814F0B870E4CC59D85C41D81D5EC4D3312C6FA84583D72305D89979C6A995A7D5E61D1BB3BFA25ECF82563E16A5D8A6827B225AA977098AA1402D65A3BE6667A5158B26B21AFBF46B9BE415CB5E43070A8DBB82C75A038BE6DFA6D49675A459AD662B7D6CF2A3F1EA441582936263A85D8B8A15AAF6A7B67571A289E1482BFE7781C5A29E4D3D89298166A88926586A7DA7628686F51D8C0EF7557FD33ADBE24766760303B39A66A7FE2661499179CDD3FE747052125644E94EB348549694BA855662A8AF2DF1A0AF3F9674D9766E96D9F8FB2E8FE0D9B70F211D0E6345472B1AAACA301409E1F0F94B4866ED7874DB16AC5A50854A5A63DCA6D1B7A1DD1B05F8503AB62AFF98AC8ED9E3D64E7EA2DCFC476A8F9465521752DA074743F0799CF0BABC48D91C08D1F798032ADD2E78753030A333BF1D020EE358CBB36C564C08D0CCB63300CD67165F8CD2C5E038535AC58632A6E7B9D6432E48DA2AE94C6B5284D58F6CC0D864B61583B63573511B3C5701E654469211BCB766123ADD2CBCA65827A2E1CCEA409A8A6778CA85F7548B8E750EA9F753017911FB976CCADC55B535ADEC112BE759B5A72E68A0CF357F2B5E8484724DA688A472676073399114ED6A05CE5CE809C2C40E03D0F4AFCB02648A10E8B4FD34CB786919024D2C4463FD6D964998CD982241577B178CF595B7C2446B97B0AA8A71B2A113B0239400BACE9EC7C9AED3E8B97259AA2CAF5CBE1C8B3BDA51ED77C9769A5B4F99E496555D69C35A54E33445C00C9499DC2E4E6592DC8CC7D2F2A1C00D2538E90FE4B69F91EF9EBE01343537C90438D77D4602475C0CBD013F3C6E376AAA6BB17BDF5ED435B6C0E7F3E0E4A12358BA78919ABC4E17FA07FAE1F77A313C3C88C6C66655C1847AC45EAF6C6FDF7EFB6D2C5CB808FDFD7DD8B279D335B454A6A7977D3D9A1D9FCF6CCB8D5B428185627B90DE4BAA9D4AEB36F757143BEA6A18CB5A29136B70175A9AA2DE495C841C707E9FA18EBFCE7815EB5A59D4A974A25086EAAAD25926843AF5325185F16F438AB532A95331260B52092771FED10DA2DE4901AF759130BF5B2D6123AE2F82FFDA0E52D633DB4A99AA229E2F9C7153F0609A33C2C2201AB396DF0005A8B5B57596CD82F1DF754E6E2A1D98CDE564001B3D023D30294C62E43AF3ABA46C33F41645066A0E895416703A45CD8A65A4FA07C2F0795CA82CF320160EA3A22CA8565303CE45EF2F2BBF68411BAEA6E2AD5AF9A9C6BA99E630B92D4E2358515D8D00BD72E54A09EA305B3091525B7F6A30545554E04C7737828100EAEAEB100A8D60DDFAF5F8F14F7E82A6E6660135AFD381458B16E1FCF9F302F2F473D2A748BF23A9580CE41030C81AE071AC01C9EFE96678F081FBB5F55AD4E4D2B966EB3EF9DDD144006DE5311B3052C8A2C02B473AA11EAF640D29E0E1A856415291FC92A41B6EB9191151A2F2622DEA19C9BFD96894D3DD2355B10D80A9925AE28BB6589563CD1C3557A6F3518B4C4EF4A08D8B4359ADFA6AAAA694EC3B8DBBC1A1CB5259136B8CF688FA9B7290109C792CC5FD0BEE9182B09411F857BB863983A6719BADB9B9794E1E684E6ECA16C8643239ABC68075CB62B673E6FB9E2B57F0E22BAFA0A2AC0CF1484454B132361BDA162DC5C58B3D58BD6205CE749D473C368A4C2E29B5FFDA5B9A8562D3D0D020560B79991DED1D58B3664DBE030C185B7BC49A245002E889A738DB8B20CD1F822AFFCFD99C92640C06CFED0887C21230221F58C0C9A6180E831455F7780468488BE2F70CFC281781B2A494356AB6C56AA27B3C4CD048C871FC290BFAE5FF525A694C670A7C1648D413BF8E1C3111405B2D46055EDCE129D68940A3B085B4529F521BD1DB7AE546936D3FC56574719F6C5AFB7905A095252D5559E22939864A7E2CF3407093CA1F3AE185D6AB49D898E4AB5DF330EB6E40F1A009D01EBDE0286A2A8FA18F9D3B1917E985192AF131614505FD4C45146355B3128B9CE320F758F5AF2AA2ACDC0AEA7CD63D54FD58289B3567B074CDF6B9ED1255B2D96CCEBAE25AC1B2D8D5101A19C1EEF7F68A255655518E68741476971BE11865096D68A869C0C8D0103C4E2742E121F8021EC4E329C4E3313435354B94971161D2775A5A9AC50250EA5AAA3F8CA80D9F47C8E9B4CC8BB776373A036EE1F3D9565266485B7467CF9FC3A9D367D0D9D121B426A96471F122CACBD97751E1D7D23A1B1E1E862F1090083B3259B4B43609558BEDCFE40346D1693D1B09483621695A0B172E44592098DFE617025233D3C813A57A938530369B2F0EAFC785443203A7CBA70AA6DAB3482513F2ECCCA2235F3A91544C021733013349E55D77B8E538BA32320445974778D507F6EFC5C60D6B1550BABCA259CE76318B20173063B9CECC5BABAB18E0A4B83EF9C0A29DAE65387B7B7B641E55945560F7BBEFA1BDBD03274F9E143A5C77F7696CD8B05ED1E516B44A75133231B8E33971E224962F57BCF1CECE7659782F5C382FB4C15DBB76A3B373A1D008D55C5465B2CCFC9BC977BB916BDD766A76F1783C47A1734E4033D8CD04E7CACA41410A11B7B81CC82C0914898C8A2E6EC0E717EA4F2A93119173AEDE24D247474611F47BC59289B3569BD674B52E046AD576211E8BC1E355DAB512C165643A430A945B683826DBC8D0816EA4736FF573AD0C02023045DA7BFB06A4F61BAB55545656A0A7E74A7ED2912BCC063FDDD585728AB94B2DBB8CF43739BF46EF977D50162C436824247F633FB23F9889E7F3283A9AF5DE06606EB4BDAF07D05C545E7FFD755990489D2358334BB0A1A10EFD0303F0CA73D9E0F705F1DEDE77B17DFB1DE227AFAF6FC0C18387D0D8D884D5AB566160B81F17E90E4AA4104DA74D223C5AEB1A11898EA0A7FF0ADA17758ABBCE96C961381C436B6B1B366CDC209548C4125514F119FF88054DFA9C4EF52660F267F7EE77247184F533CF9C3D8FBFF88BBFC457BEF2153CF1C4A7F1C61B6FA0AAAA52161082337F3EF4A10F491288DF1FC4BE7D0704D0B76FDF86EF7DEFBBB8E79EBB9148B0F6A04DE6F8430FFEB60897A92AE7CA05329F3EB79D16C79E3D7B721CDCFCE18020F791939B9DC5C9C86C2002F6F1E3C7C54D31141A853F18808B05331331D873369407CB1149A670A9B707EBD6AF45CF8573B09115104BC05B5989DE814149063039F7EC748287E1A4F21E4C19E5BFAB2ACBC56A33890104E975EBD60968943E536B016E750787423261159898EDAB11145255D155D61D79A6D448A028BD5332CF84BBAAC1D7E854D08560262DBF376C02657529949AA9497D3D80E66EECB5D75EC3B973E7F0D8638F4932098FA755B076F50A1C3F76146565953429D03F38846D776C44321E971D44782482B5EB37CA986271E0EF7DE3DF50E1F763F3DDF7E17CCF15545456A2A3B61E878F1EC6A1E38751D3DC88B52B96E39D377760D3D6BB10892670F7DD774B1156A5CB9CD562DA53EB9FF18E366D672C680609DD1EB7042B0998BC5F6F5F0F5E7FED35D4D536E0C5975EC1073FF8980072636383EC6C5E7DF5157CE4231FC1AE5D3BB178F1223174984CF3E94F7F065FFFFABFE20B9FFF027EF6F39F221209E3DE7BEF9573588FF1A31FF9A88C118F9795C0E9C251CC91F9F4B9ED2CE89E9E9E9CD93AD152E2F69716B5A998C081C24C21A347108DA5A4F8E3A9AE53E8EC68432A9194EF2F5FE945DA0ED4D4D5A0BFA7077E97138E9C1DE5B5B5088723963A832E21D013148C856E7C6504E8587454267A5D5D9D2C1A9C880477FA4A4B9FF15BA0D87A35A233745370511DF329B6F46ED8401A4F20FE862F2A8F7C3D80E6F8E4D8A021C15A797CCFFEFE5E6CDFBE056FEED8857BEF7D5052B083412FAA2B2B25F3EDB5D77760FD868D387EE228CA026558B16C19B2B9242E5CBC8C8EF68578FED7CF8B1B88EE38BA49687D9605BD58B4B85DB2E6962E5D069B8D3EDF9C365C6459523AE63368415BE96EC68256D2A08A4142CD8DC868044D8DCD387AEC047CBE80BC3F9353589771DBB66DF2EE8CF3D0F0613599E5CB9763EFDE7DD8BEFD6EECD9F3AED4FDF3FBBDD2C674551D3B7602AD2D0BC4CD41D125137B986F73EEB6B3A0E98336568F95EB79ADD59D0BAAE67168A60509E7460C514596878606A4A8A5EA65F5231C55AD7025BF0BE3CE90ECB5E2981149D3D698894E97828445183B8EA56AF51512BCB8008A85E86040ACE853C8859881F93737006DC66C315F379B4BC161770A88CA771C680C7E81FE68FE5DE92BA7526429F14317052D45E5B661728B8C70D9DAF31AD4C3E035150B229B637579ED234EA7E070AA0A2DB3EDE22013CA58D0EA1D9CE22BB73BD4F3A8D891A206F2C37737711C9EA7DA8BCF6AE6A3D2F93065C1184064069F0486B56A9EA12CCEC02099B14BDC76004D1687616E58077BB155966F6185C18A3B4A7FB15441D1B2ED9A231A1A1A42B0BA52A2DE6EA86DB021F45F8515DC424BD45D0D2C157D9FD9ADF28C8D8E797E21B61B771DA4C2319DF737B3B0CD1D409B05DC8C2DA1BC5122955CE62C990B36D81D1ECDDD4F29253F025D3A07267F300027D662868C17BB04116D043C06FEC41221ACD3BE5032B8B94C1A99ACAA6B58603B196B73064D68C348D13E68F2D909D005394FBE9F9647D525BB38344D1660F1FC29C47E0A006EB4A54DB2982AFD652459D5CEA0E4E2284CF899D9134E03408C056DF4704D47AB95B50094790B4D6BC7D25FA906AF02540A24D958E2C60684868711ACAE120EAA64A1E5015DBDA6F1635A7D95565A9DA14F19FAD235178B69BCEFCD7E4A715B58B7C38CEC337E409753E133D93ADC2A576BEA599C1327A158A16B2A037DA2925786074DFF79815AA68059123248BB13BFAD7A35A6AD1B2B40525004F4B406844E9EA0F52829E2F682E03F991D595AAB9205ABB2F08CBBC1CC9BD9603B58697605C693D6B0A6352CC944643C311B92E90863D3D90D4D562D26CA82569F9C58CFF4A19B1883EA774A857297A10AC9CE247D70A6E6DD6DE783CE652553456D7FF43ECD58B385D5D5E4F0EB80886C0185D36F499537D33087D070585801EA30B19F75869245FCDB22C66D3ACF90E9C75B18662AF034530365AEAF63056A4E6482B3D135B68ADE98B69F38E1609A006D1185BF5649F6D90068C5D31E2BB8AF76601C9474EB180343D7E7935470651C081849762BC579A85DAE133EB4268C30180400559A8B23ABDC78521984AE847C3D3DF56604FEC2F8B42E413796A8429AA04954D10EC2425ABAE06C0E991CDD14CEFC0E557B2CD53A3446D7465F41EB71281F7321CDDD003471803E6B1A683A876CAE87FA98FBDF7E99841433303D61014DE95C439FD256837431AB36A8DC581D1F29582534956960338041E16F46F955985F4D24E3BEA0F5ADC697552BA1906966A5E31506DABC1A2733F730F9B4D76BE4BF16FDD9B499D572A65B83006D7CCE63B7B8B36C414F027D2771C8B8ED39998A2A66B765C6936A17055E94795256A34A52C921A3CA3C49511905C0D4B848534AD161432E95868B56357248D1CD415706F358983D287F57413A9B58263AFB957E5FF14DAB4A35922AAD330E8DB53ADDC1422F8BF0A02DA9DE920128D6BC7E473EB79A903AC1A46029F3CF2C6460AC64717971E7CB854D176F30CFACE699D12FB10609D53BCD97CF6DE78316F379863E526BD2064422A46DB9E066258CD2E7DA2D906F79369C1548B53E045D46B277558BA1523319EB76A24BC3B06F6EB5A62E0668BB852A41B049A6B84D7731B7262FB9497EBED39E412C1A81C35B21B97F4E5B0EE94C0236875B454B98FD484684D3298143B18CED76C44746A52289A474D3882080937A483D0F131FA1FEA2839A4C698447A3089655AA406C26A9AC735668A1246F3A2569F3D1684C2870D27BCC40141D109780241756B29332E9B404F4443E34AF1B42CDA1020F5A02EADA5DE8B2DB100D87652790B2B9E115594F96BBA2BB46D1F194CC28EFABABB6EB5D96CBE7021C2E05B9E984B882E87BF7B8A82D429F3C634619793637150D450B4495D562B6217315C2236104CACA9578932EFB457AA694CBD2B2872C48CC1D9DCA368DE977663F29CB3C166556AB4716518753EDCC53499D85CA47D6B2A3BC9FC7AD323F73593B1A9A4A6A76539EE7569C61CFC7A231A97B26DCDA295FED363B41EB54707FA1045895DAB244E5B5DC17653F8D7CA3B896F4CE83343302152DE75BD105743D8026BDEEED777663C58A9538D5D52D1982034303A80878515F5B8563478FA275E15201C8A6867AF45CEE414D5D0356AE58894B674EE2E5575EC392E52BE172BA101A1DC1AAD5ABF0AD7FFD061E7FFC719C397F4E32EF860706859E76AAFBB4D03E63D1A858B49B376D403A95C4B7BEFD5D6CDA7287F8FD2B834A73D94E7AA9CB8763470E61F3C6F5D8F1E65BD8B0618308E6D73736E0E2C54BD8B8699324CA9012C73EA46E32136F1E79E491BC521DC7012BAAA4B33A514554E2B292FD78F8C001ECDDB34784AE4E9DBF2245989B9B1AD0DF77195BB66C121D96B7DFDE8D75EB3788F8BDD7ED4530A04A7AFDF6FB1F45E7A245D8B57327BC6EB54011CCB9A03011C9E3F5A1B9B909478F1D950499C6FA3A49E7A71B25102893E49EA79EFA2E2AABAAC5B2975259C90442A161D4D5D548D92C2E0C274F7563E99265088F8684CEC70F99334CBFBFE79E3BF1D24B2FA0B2A21CE1D138FC7E1F46A321B8DC4E78DC7EF4F78510F0073030D88340C00D87CD858AF26A74779FC5673FFF87730229737253BD2D9C310BDA000789F1FC50F7A1F499A005B469467026198A0381FB0EA98ACC4DAB5433D172117A8742EB82139B0B20AD2E6B80F7566AEFEB0134C7D8F77FF04301E0FA8626F111B36453477B23DE78E555545556E3ECE51E7CFEF39FC38F7FF4235457D74BE511AFD78DA0C786175E7A159F79F20FF1F39FFF1C651541A9D6F1C273CF0B50BFF6E61B2204D5DEBA005DA7BAB071EB66D1E4D8B56B175A16B4A1BAB25C00EFC5975FC5DA751BB06FDF7EF85C0E7CEEF39FC50F9F7E1A2323310C0CF4E2CFFEFDFF82FFF1DFBF22554C08E297AFF448F625DD3265E595924E4F90FEB33FFD7778EFBD7D52D18402464A1F5D5B910CE67954651827EB2BBA5DF8E2DFFD1D36AE5F8791915191F4F50503E83A711C765B56126812C9244E9EECD252AC4E49F53F71F4885461F9DC9FFC094E9C3C2119BF6FBEF196EC3456AF5C8581C1413435354AAA78341197946FB6FF5FFDE5FF8AA79E7A4A1628064FC92767F516BA5F962D5B86969616ECD8F186BCD3FBDFFF28BEF3ED6FC1E70F606868045FF8FC1FE3FFFBF297F0977FF91F447C6BC78E5D686A6CC182B6569C39D385CB972EE283BFF361BCF2EA2BA8A808E091471EC0CF7FF13C76EDDC8F8F7CF8C348A6423879EA30DA5A16C2EF2BC7EEDDEFE2FFFABFFFEB9C60E59CDC74A601DA808311ED61E249E9739D16307139318F559A31E19996B3783C68383BD22AC49A7588921A7D9FA391519556AFAB7EDC8AD633DFFD7A00CDECB7E77EF53C366FDE827DFB0F8A25D7D8548F851DEDD8F3F6DBF0FAFCA8AEAFC75B6FBD85BBEFBC13EFBDB71FCB96AFC2C68DEB70E5F259EC7CEB6DDC73DF03D8F1C69B486612D8B071235E7DF165A9F377B9B74780A8BEA64EACDB3777BD85B6050BF4CED0857BEEBE53DC772FBEF42A52D91C823A03F6F0A183B2F5B7DBB973CCC0E7A5BE471A65E5653877FEBC58D2741D50A69596F9C18307A52622B36A59624B0AD652BC4903348BAB2A2D0E8FACD85C8809D2278F1FC34BBF7E019B366F8637502E5209870E1EC0DA35AB6447313A1AC1F7BEFF432C5ABC18838303282F0B8AF55F5D538DA1E1307EE7773E801D6FBE89E150041EB2409271F8CBAB505F57CB8A547877DF21AC59BB1A5D278F23128BA3BAAA5A2C632E2ED4ED78EEB9E7A4F02B0BBA0E8786C5FAE73B313371786808E5E51548A632F8E0071EC30B2F3E8F586C145555D5C2AEA19EC9C30F3F844307F7898BE3D5D77662DDBA953877BE0BC323615455D6A1EBD4197CE0031FC0FEFDEF6161E702749D3E8986FA5644C329FCEE131F9F13AC9C939B4E07A0AF0E651519E014ECC9649088271028A5674FB83E290F079DA869641964A54F8E143085CAF24371733B5CAC3586F0282B4C3BAFDA9DDC8A207D7590506B8A6B8682B01774208CEE0071FF087D4C9587CAB18A8AE281EAC40D2DAB9B61A56BA7F85E1974133A1EAB50D33FAD772CC2AD56FE24E42866AE2B9A503D3D9B4E28C53EFA53A90297A6FF55C55F541C86FACDDC0F3119C6A114F674E28895BB6D744DF43C143FB4A288E87C000B400BCF44F267C4412BEA83F40B4B554FEA5353579DC1CD2445EEE9D7A56F5E73A599684329D23455F998E0A2FCC5B0BB60A7EE06B2C8D89CC268E1C292B3A9D811255AA98B2D7AD3129854D43B1A070468691EBAE4A4A28D0AC44A4101117612EB028CB28ACF5EFEC00A100EADA3AD5E958B1905ABC40FCDE335FF5A3299993C2322552C64CEF774A1BAA6724EB0724E6E3A5D8096CECB434FDE0C54161F2B1167B322E4122C2B9F10A06EE703C48521342ECEC84C5E839800AD1B53748A6959E7B20E8486E8AFF489B0BE9523AE26D39C0DA159EBC2F1591CAABA8BE2F82AD6906272C85F659B4FAA5D3A9392125E90121F8A6AA734CEE9E127079AE7520C48D14BA56AB616F6E20B19117C8228D3AD850D22CC103B1CC24ACA2AB0CBD92489045926BBA860633623C59EE4B8ACDC5FF58F95816380DAFA7F1E27E1482B40A7291CE651EB8C7CABAA95E40374129CB30980D2BAE663C9DA4E0AA1EE19A11EB2B6249F81C136CD0BE0EF0C3C72312128139C856228EB98A6C7E6E55A4DB92A9D74A60B1D9898884A72A3F56F28BB7C16260A91EDC25A8DEA9954C524F683AAA044D714415B71D7550B98ED2383824A2295EDCFF74FA3A1FE36D3839E2A8BA3D0E9665E2A80B60E3EA6D9D2475812389A18BB18A957255849ED52AE0D87D0BA34C79C4511721944C3A328F304E0F2B826BEE82D72C4447AD0C5A02740C8E168279011A85D52F35200C9460B50201C5966030A7C1198146019C672F1422756A855905F2C55A5392D241BB13655F963A2230B57703185A49CF33994E094953A5AC842BCBAA3242EACCB42898B4303B400B758F766BCE86031AD53EA511348B5C0BEE4F6DA68B9EBFBE6F8BD0256B1E865C1521635192532D6F40E249DCD69612D2E407A5111CBAB109C5656BC7A1E43DB53EFA4D2E7A59559A185D16D1B8B24287F1DD73F8783FE74FAD919304C0BB30539EE3858F99240AE74B6D547A5E0DB6DECC714B2B6249A1B16CC89253227379D510B5AAC0B954ACA41158DC524123E672F76938014278BF06C59A5DA6EC3F0680C57FA876173BBD052578D80C38EE8E808821E0FBC2EB7A6ADDE1EADAA6A12D688BFB73883923B086E83CDF63A2F5320B5EE4C96206963AA4C9BE1F533B3D0E9F220C7B46E52D34CCD151EE4A4F56B0164A100B34CB8768DE8926C52FC8A092EB452ED04E302408B059D75083813A455C95D65A15BF9C8D71A9E06A005E832D4CBC88A0F5AAC67E976DECB80ADA9EFA976AE5C2084362817574B908639A5EF2C9E1A72A11D12407439B8AB50EDE3B0A96C44717B20ADD2E38DC68EA61BE62D6F29CAA0761E62C98B6EBBBABF7227F1FA4A0082FB3F6967592CE80A5196B9DDCE3691D12FCF2469F902CCAAF28D4ADF573C7695BCAC2CEB052D6D7332F8E7E4A6330AD07A2810A409D031D26D7C7EB8945BAFF419A70538EE24AD96969E1D38131EC5BE23DD58BD7211A299348E9F3883D59D6D58565D0637072F01229FAE5BB8603178DD2A8D3D7ED158F5767C678233815A40486B898B8D99A355EB80C3468B2C2D6E089BCD2DBE7E9B3D23B6B57828740D435A9F1CA3D4952140B3AA8CF88CE99F753868900B508BB782C0237EDB0C720E1758F1CDE570219B4928707238914A2BF0918C18FAA98D3898F68517343526B6A0C94D26DD2D2B40A77CEBA4C54B824D26839C9D2E0055C28A2E0AB18C25F74C2D0CEA1C5564961C69FAD0794DFAEF6D5C40C4ED40B70D9F953C6D0E338A403991A6C56DD1FA1050D6D995A6E0ABE87FF0DE92569F91DAA3BC3FC1D56E638C80199F4A2655F9A0EDB0F32064944F5C78D1AABA0F5DF0AADA0B331909C9A142850000200049444154CEFC9DE9ECAAD28BDDEE425D4DF59CC0C99CDC7466019A2BA18AC928804E21E0F7EA62B1B70A64CCEC7B28FB2D83141C88A432F8F1ABBBB069D9323CFFA35FA2B6BE06EB1FDC8E0B4323F8E0F245E2A726A343C95215EAFADD8ABE67D3CAD70368AB7B83C92906A8A548AC9D16A7038E6C42F9332558C81F15B8E392C8B58E9C6202BD8032B1D7CED2600EA93E235B7AAE8976BBB89CE289049C1E5A9792442E1ED804CF73B2F24A162EFABE6D3649D22AAFA846361517FB312BD6A4760F188B96A0A915E6640E16CD7E31DC75156FEA41F3BEB253A0AE88C9194C517304C83A3D70BA18A84CC24546865EB0685073B120A01258F9CCC2D37633BBD726D573025E9FFC9FC7113F95FA9D4B15DA88C7E57D9C7A01E0EFD48916DB5C74C3154FDBC9DD8D58E1D4F748C1C3D5438C08E50F97EC4D2DA8984E33F147050519C8E502C68416B560296D6DB52B327E721DA03401E05C0E0D75F57382957372D399036895F0C68ECF4847E5904C67E0F1B8E0D2F5E16616DA6E9DAB7170C6EC76BC75F8141A6B6BF1FD7FFB16CE1D3D2C0070D7873E084775359EBCF72E3808062447EB74E25B1998C7076845025739961039556A34B37C1ADD98FC3735CB83C132A4B236D43534E0D2D9D3221C75EEC245D4D4D48189ADD1C8285A3B97A2B9B1016FBEFE2A5C2E37528914162F5E8CEEF367515E560EA7CD2EBCE0DEFE3E2C5CB408894854E87177DE7337CE9CEE428E40E476A16760502C585624A92E57D982C78E9D146EF4F0403F6AAA2A70FADC05B4B57708AF58B921540AB9AA34AEDE650C406BBF84D898AC5C9E5182FD648250908CD0D77BF932DE7CED55D4D535A2EBFC15ACDBB801AD2D8D181E1AC0C285EDB878F1220E1D3A8255AB56A3AFAF1FF5B5F542B33B74F810B66EDF8A8ECE4E7CF5AB5FC5EF7DFA09FCF8E91F62F9B26558B97A0DBEFB9DEF883BEDD34F3C891FFCE007B8FFBE7BE171FB70ECD8512988F0DB0F3F24943AA9633914423C114763531322D1B8F0D149E7DBB4612D0E1F3A2C5996E43C8F8479BC0B172F5E407535935E32686D6DC6E9D327D1D9B100070E1E445BDB4284C32AFB78E9D245280BFAF0EC73CF2118AC909D00E9825DDD27D1D2DA88F5AB37CC0956CEC94D6F04A0CD2452D15815614E833E373B86469338DD7511F575756869AE21414C62B7F98F25D278356D6FAAE03B892BE40FB9FEB156C2E06FA443B4746BC40EFCFA9D77B16EE962FCF72F7E19A1DEF3C8A6D2D8FA810FA0BCA9150FAD5803172D24B7D22CA60563CA51CD16508F6929FD0F15772FC82FA9CDB1716119368F625388DB61AA5D59747CC182A6E6B109B429EB953C682679B0165F64744400F6E48953F8E33FFE77F8C92F7E8605ED6DB0A75370B97D786BE7DBF8F4673E891D6FBC86782C0197AF12EBD7ADC6B3BFFC299E78E249BCB36BB70030E5716B6AAA7168DF013CF9FB9FC157FFE9EBD8BC79338E1D3E82254B97A0BAB6163EAF0BBBDE7A539EA7B9B51D274E9DC6A31F783F7A2F5D402CC63263FD180947B165E37A5C3877162DED1DC209BEF3CE3B752AB47253A87ED301F6620B5AFBCCC9893682FD4A3BC32625C6BEFCA57FC0DA552B118B25309A0228471A0A0D0A40DF7DF79D62099F3A754A8CA6707814D595353266CE9F3F8B27FEE0499C3DD32D9995914412995412B1C828DA3B1763EF7BEF62CDEAE5D8B7EF90F404332617762EC68B2FBE889ADA2A01E9B5EBD6E1DD3D7BF0DB0F3F824B972FA173E1423CFBECF3921CB361DD3AF8BD4EF4F6F661F3963BF04FFFF44F527B349188CA0E60C386CD38B0FF203A1776A2A9A91E2FBCF82B545757A1B36329FA7A87A43EE2F2154BB06471BB24FC6CDD42BEB91F6FEF7E07F7FFD63DD8FDDE4EFCF55FFCA71B1D56D31A957372D3E902B4A18789B39F032797452C1DC6CEA32F23928D23166BC6F2855B313438820B0397F1D09675A83369DFA43AC9DBDAF30A618C2B5B455B26DF828A3E247C4B0307726D2381690A06E8F03E7D929A663546605DF3392D67E5C1E5463B667C412815E4A17F2D9ECC20964AA23F16C389A108E27D97F0C64F7E2C09120F7DEA93B83C9AC027EFDA0CAF16CE61E5666EE7CD8FF2DFD924AB50B6B2F499E6A3E0C2FAD28241059A97720F149408557B6BB0D0C1258917692AB64875DA7318CDE5D04B6BD2668797556F023EF8A9BF20E099111FAFF87785D9A0740C95D16F7221F346A3BAE5351AD72C94B4F86AAA6A15EFD602D07C5666E17DF39BDF1460A6FF9255776835FEDEEF3D81975E7D09A94C1CE1FE105A5ADA71FACC197CEC138FE39BFFF60DB436B7C1E1F3E3D3BFF7297CE98BFF2F3EF9894F61F73BEF88CF9560DFD6DE8E81FE7EC99CEBEEEE968412BA06987475CF3DF7602414C28F9F7E1ACB962FC75028242E8D2D5BB648E5929ECB17E5B9982A3D3ACAA48B4AD4D5378ABB80C798BE9ACCF8E6B1EC63822DFB5635974D5C032FBDF4120E1F38288B86C75F2EC1F89D3B77481209B31199FCC2EC3FB60DC703B34D2F5DBA24D76B6D5B807BEFBE479AFE0F3EFF39FCF57FFC2B444646B074D9327CF77BDFC3A38FBC0FEFEC7A07E72F5CC0E7BFF07919A3070EECC7430F3D846F7CE31BE286606AF77DF7DD8763C78EE3FCF90BD23F43C321DC75E75DD8BA7913BEF3D453F0F97DC216A121416DF2AE93A7B0FD8EEDD8F9D65B92F2CED4F7A6A606C9886D6E69C56BAFBE818E8E765914D6AE5D85BFFBBBBF9724248FD72FBB1216FA65BB7EFC631FBBD1293999E6BFEA9839B9E974005A7C7312FD96B085F8B608D2D1D408761CDD016F59392E9D49E3C0BBC7D058D780471EFF1D2987B56AC90204297C8EB400BAE2699262A37C20B275D5422B93B7BDF45221D11BE34B31969C21C6EBA6956B6B27B946060928EB4FFED7221EE1441D339ED6D4B5685426C3D2048908921E8F4F7C87A4CEBE76E2AC90F15D4C55B1D9108A8E62C9A23674FA1DE207559CDD02B0E6A3EAE2562A80F6D820D4D8C58FD7E00F83317C4E092EE5036CAA7D54FFB23B245543ACE650268D43E72F211C51BE4B3A2133F128B6AD5B0997247964642C70AF94E679A2F266BCE5966798C436E56A80B6B238D4B7043D82222B5933EACFB6255F982E587A999D1E0790E0FB386495B239A83741A17B0740360CFD9FB934EC22526F2AFB28B6014185D727B03145DBEC5A441F453B59588897AE0D321608EECA07CEFB6565AB9E88C7E5FF0CCA997E2A2E88311E5258591C4A0F5A01B48C436D594BDC22A58A34F3FA8A134E1126F51CFC3F7704BC1F1717BA2454956E3B92BC9E8B6249DCFB6A3E398386F495EB925AD4C2E67D6D741EEB0732E7A758AB92E98612E0E6351DFA59DC32AEB8489FEEEE465D7D1DCA2BA9D39154E34CF3CC25C8E966020A45985C923929CFA20B543381C8B8B154B0910607F542B88374A3AEB61424BCFE0A93B78832C889F342D88A48E61278EFCC2954D6B7E07FFFD3BF40B9D3875434850F7EF46368DFB00AF50DB568F07BE1455A9F4562A69EC27AF4092F92B4254B106CC2E5EEAA096FEC7B0DD0722DAD722196760191B5FD2D7F90D09B39554569CCDA31EE231810B4F25BA52D8A1246389138D9CD80E464535ABB9A5624EB06694D69C46D6E5C8CC4D113CDC9E46EF4E6D0E0F5C08BA48E5869F9D6719EC854D328B6D218B85125910AFAC0FC9DCFC3C2A0FC51595E4AE7D8EBF20AB839E84A61143E0BC4EDC0B1A1280606FB70FCBD3D38BDF72836DFB10D6BB66D416FDF156C5BBD0C545D71EA523BE2E2C8C731954B22BF439A36405BB4C4F3AC0D054CB4A00D6048065D2E8D74360577CE09BB830C08D2769392A1C977226E93D160A3FA9BDD296D61AD686FC0CEE84D9BBE962216024A4A92543149C8DA6082078D0DD58E02E4B240B1D155969DB9BE59BCC72D4566495431597B7980163606F727A4C9A97BC8C2A2CB781194791FD5972ABB4F1B60790097B1690AC1EACC485E836352005902805C60359F9989405AF3DD94D39220AC56DCE3BB2B9E3615EB28F26F87D3CE40655AB34014C346F4C965EDD27C736DF548BB3AD8274AB255D5265542F3D28652B498224B5C7CD4F2DF505F3B91CD3421644CE78039B9A9EE40EB9499F8D9E568F61A1B9F047335F792D924DE3BD383405D3DFECB9FFF39CA1D5924E2293CFCF1DF45C78A25686EA8439D00740E4E992063132E1425C86CAC277E8C31478CB17A3940550D360DBB169707E78F9640D5CF4D03C1A8C8E541DAE0895A7DC6FD58AD57E3521046801691E78ACFC015BFA34E81F1195B270D7F5756989ACCD9AC1D71669F51F3970334954619AD1F46FC09E8126D570F6426A25910AC0B85D5AD329E8FDA4CEEF1B494C5CA4F53AE328D6C9A8B0890F538F1F2D12E5478ECF8FE57FE273289A404AFFEE6FFFC2FD87FEE321EBC6B0B7C39C88F22AD524CD904BF1443623A2E2C95A8421787E2D95ADF85EF60CDA63496AF80948D20CA841F8704A568E1C22EA6B58CBB442A2D954820C244DC45281095ACC13429612A53CF808B59784DBBF13B55BF90343E45F733206EAC64B560286A9CC94AB482E6B546B8B5EF941B4CEB41CBC0D149297C76F3119A9C1A0FA60DCCBDCD731B0B3B7F0ED3BEB3597874B6619202FD4EA714A74B723C7ADDAAA4962C0605FEB6E2265BCB7DA945DFD43E14B74C8AE04C09D30CECCE42BB1880E6F815F6B34513DE5C77BC36298C6B6564343696581CD74547B5F52DF2030887348D43178730104B61F87C17F6EDD98DDA86063CF0F8E352E57B755B2B1CD9149C3A5B4E883F1CDC6E8744C41570A974CFC907BE14514D9DCC812317B1383A8D7BC3E8C4695FB509A06B2BD9B83AC451622EA7A3EB0542DBD866B15AD057BB2E7232818DEFD04C946270E6AD76EDD983AA8A6AF45DBEA2DEDF4985780546B148026E5740FCD1A95C0A8D2DCDE8686ABC6EFF148358F1BDAD6053DCCEB2E8E483573464547FA46DC0CFF61C420009FCE01FFF116E9B0DD1440AFFDBDFFE0D4EF60DE1AE2DEB5166033C4AC75E7D7463AA8C3EF50755BD72F21F05D0351AA0AD554BD40EC080B4B11E0B57562E385B96AE169D512719DF6A0155855699B8A1161303BCD6B6B23EA5D505226F429A99708F0B00648E3760A3AC686B49A9B1E9DE13B5820155AB0F9A7440E5C648CAE9628D4BA287EA36734EF118300B8EF93BF7BEE47723A553D895FA7F5EA08B74435E93B3255F264CBFB775E132BF5BC794B83274A92503C4D226B225D53521F5626BDAD5EC2ACCF35B1748F337D5D6392C58D03A95213451334FFAFB39B9A9068C495BD0EA40957B25EE00F54F318E32B624225917F69EBA8C8B97BAB17EDD1AF40F0CE3CCE50B7864EB26D4B93CF954551165C9D173CD12F22924A26119101E8F1FC1A052C09B1C48AB945E659D51EDCDD2DED635C446809692A1F2B8F2EC96EF69454B184B6B20F0723C837FE3D2315EE77070519398BE3E8231FD951C58E6C758D8C593C5FA6F3EFD89336711F405D07FA9579E2F118F209B8DA3B1B119E1D118FAFB87457B2369CBA2AD7301DA1B9BC63262261862568B4CF7F75596A8B9843C9B3427B3151863A0980EA4BAC881FE618C0CF6E3C8AE5DD8F5DA0EDCFD5B0FE0FEF73F8A935D5DB86FCB3A7872004359C657AA5C1C6C64F6B26A7B132A9CEC609FA826A1F5D5C74E6E1588E618930413016165CD8A954780D08B85691FAB0FD75CD70AB0D69D8A017403C2D6F633006D2C5A734F034213218275DC582D68732F71970880AA019CCD2901FC6C56BB59F40DAC606D5C2CC6A8C85BB0922EA8DD79DAE5213107A6C4B3AD2CF3C9BC734118C92407A905CEDC832E2095BDC902BC8542B7BC9658CFFCDEFA778B4689757133ED647628CAFD61673078B2C367A2A69ED2F77372D3E900B414B0673690D9B46A0767D69105EB26F3673099C2A1A35D68AAA9C3D2D61A38981490073A5A87869A279B2899D422B294CE6064949522940F8D16A8298469180A56C09141A3AB8A4B8C5B99F73A214195A39707D5B141E690F1F9783F67460A22691116193D7AC151A3322D13BBF0DCC6BF476B99A0CC7F139429F959EC5EA0CFD950E1F89D494996EBA6D3720EFF260B1107337D76CC624B3BE5DF0E970AD2487A70862D1E874D02420EA493B4AA75545F6F9FCD04B182007F2F667498496D1DFC0640A45DE58D95BC6986D7CEA9C40CEE30065269BC73EC341A9AEA11F0783092C8E1D0E123F8E47D9BE1D1344AA9F7A2036ED2AB04429D4D9735014EDDD456ABF45A8BB1D0EC6AAA45545F89F0684B4F07B724FA910F9C713BAE5D2C747F3025CE4ED683F2CDAA8AD5327A6507480BDA543631F7BFDE56BBD8F5506C3D176FFF95556B529755BB98716DB53CAF87123CCED0EC0C58CAB36A5122A5E0E7CABFA3B8A3F22C29757F53A3D02C361218346BA7CE7034C69629006D9E95FF66C0D000BBF93BDD7779664971993CFA99A9E161E177CBB8946C1D950844F798D5C5915F382DBB92E245CF2C5025809E8445A6E3D522BBC21992CD30CBCD2129B25C1D47010C876328F7781074D0776A479AD592E329C423619497D327AB20BB907A200ECC7C80D0508C4482D16CE7F420A7C5CA1FB5C5332A58A66A94B2FE725995312582F7DA50C8B0DA8B5E2818D47233DB4AFF5B980B6AFEE74B34725008185BD28939B00CA5CD3C97B5C9FAFBFB71ECD831545656221289482205FF662C34B202962E5D2A54A8789C406F87CB6D47343A828A60AD00476D5D15060607446C8673309A0C8B1E83CBE1C568784806797979B93C1BFF4F5F379F95D7E68794305AF7AB56AD92124ECA482A640C9909271698F62B9A924AF237022D015E2C50E5E2206C8FA673E8BED087542A2719649DAD35A8743A44924892300810622913DCB3B0F3DA82060E51EA93BEB2145DB5FAC0C71B765703B44216B1F232199C3EDD2D4920172E5C445959397AFBAFC0E771A3B1A111C78E9EC0E2A58B71F9F2252C5AB41867CF9E476D6D1DAA6BABD0D77309E7841EE6C6C2850B85DF5B53538337DE78039B366D927625758D5430D2ECBABABAA49DD956FC8EF4352EB0A49F353151231291E01AC7249365088C0D0D8DC2D526685247591B4357698A4C16A0B52085005B3412163DE7DADA5A5CBE328055AB57A3A1BE1EE1704878DCBDBD578407BD62C50A8C8C84515FD7209AD35DA74F63D98A65685FD086A1C1415CEABD22B90A7D3DBD686B6BC3E933DDA8ADAB45B93F88935DA750D7D880C1BE7E19C34C7E615BF01D59B880B446B605DFEDCC9933C2B21083C5ED81DBE311595CEE541A1B1B85E2D750C7649918828100AA6B6B3034342422FEF5F575721D566161DB197721E708FB85EFF8FCF3CFE381071E10CDEF12404F64F81390C5A59116E5E293278EE3F88953181A8EC34F71935C0A613BA9463E642249DC7FE71DB834D08BFDC78EA0AEAA02158120EEDC7EA7D233166D095AE48E7C3695D45DD3CF60B508CD96D1802607047F274F92623A8A9EC333E99BA465C1EC2BF277B3C8E44248669C387AE212BAAE5C960174C786F5A8F1F9C4B297B0A1F69410A88475114F8A35E26339295AB596A8B8351064567F03761C6C045F0E264E5C4E7C665FF1590D358ABC501E170E47E0740590B56544D4BCA6AA0EF1E828AAAB83123C64465C5CF47D8154320B9FCB07E458205655AC619B18C54033B0B9787012111C9A9B9BE1A2A68109C868CB93C772D120E8F0BD3C5EAFBCB3CBED923E8D45E352F0D7E5A1F04E0E198AC58B0219E062BB122645F33B2E62F54A361288A71292FA4C660163EE0E2EA8196A10BB118E25E0F1B9A5ADA947CCE7B45AF4E359D15703B4B242D9CBE42AFFE29967D1DABA00030343180987D1D8D4808AA01F4383434824D28827E3D87EE7761C3B725492456814AC5EBB12996402CF3DF32C1EFFC847A53A08DB8BA5AEBEF6B5AFE1D1471FC50B2FBC80868606691FB615FFCF7EDCBF7FBFB4D7EAD5AB6501FEF5AF7F255545C8E5EDEDED173A1BFF4EEA646F6FAFE2070F0DE0631FFB98FCDD30794CF070C2A966B1A0E9DBE5F90C387FE3DFFE053555D5D237834361D15DE7BD2E5E3887471E791F464642387CF8B000269F239BCE61F9F215387CF4283EF9BB9F40243C2A25AFFC654179BFCA20AB95ECC6FA4D1B71EEFC39B43434211A8FE1FCC50BF8FDCF3C89679F7D560099BCF0C71E7B0CCF3CF38C3C0B1737822ADF870B1A01FCC0BEFD88C5E3E83ADD85279EFC0CBEFDED6FE3F77FFFF785077DA6FB0C46C3613CFEE10F4916E8C68D1BF1F4D33FC4D6ADDBB063C75B92F5C9FBB04ACBBE7DFBE4F909E42C9EB066CD1A590C6B6B4B2C8EEB8F1B6A42084067858D71F8E8111C3A7A0C9D1D2B511508209B8EA277B80F8D754D48C65270063CF007838845C2703A191A74A2B56581164A576C10D2F58C55AE521CC6FF580373E688783C29994AC9544CB896EC5497F8BB9D22FD087B18CFECF82212C900D62CFF085CB900721E2F761FD8277EF2B6AA6A38A91896C921311A0123DA6E6A2EFBFD79C5AE62F02876B3582D69AB0FD1F8ED8AF9AFE207D53E35D1CCD51921B2348905AF7C3372BED6F1CD08A3426FE3B50569B540AD819631943B7D4DE547525BFC2B577AF0EEBBEFA2ACBC42B2D068E1A4531904CA2B313834023F9CA80A96A1373E8AB28A0042FDFDB8FBAEBB70EA6437FA87C2E88F84515D5686BA323F366F5E8B575E7E51764983C321A4B276B47574E2D2C58B280B78111919C2E38F7F147BF61DC4E933E7D0D1D684D69626AC5CB9523B9B943F758C35AD7D9F4C5419EBE2280034770D2FBDF4327AFBFAB174E972356A6C36AC5CB1104FFFE0C758D0DA8EFE91416C58BF0E8798BDD6B9542CB79ADA4A0C5EB984175F7A051FFFD4A7F1B39FFD440080E3E6EDB7DF1690397EFCB8586EFC3B175B820F772504BB95AB578926371799BD7BF7CA77870E1E446D4D3DBC3E2FAAAAABE1F70771FCF809343537499592A54C28F178F2C1C5EBC557C443A75721291A6B59CCB873A211F2BDEF7E07951515F2CE5E7F998CD59D3B77A2BD6301DEF7F0C3E8BDD223EF42C0ABA9AE166A21771967CF9DC3C73FF5717191F55EB92225B076EE7C0B8F3FF638FAAEF48AE1C20A295C18EFBEE71E59BC3EFFB93FC22F7FF90CEEBEFB1E014B566C79FAE91F8BC5BC62C572F87C6A71DFBBF73D2979F5DDEF7C4F52B37BAEF4E00F3FFB47F8F297BF8C279F7C12470E1D9636ABADAEC5B295CB6541D8B66D1BBEFE4F5F95CA2C9224D4D6818E8E4E343635CB22B9B0B3432C6CDE77D9D2A5686A6C426D7DA968EC75019A5B59D9324BD9FA34068607114BA751555507B7C38EA1C15E193CA95812A3A3315437D68A3F90CA55D48265F060706000AD2DCD82190A8C7420A788015D0C76565F6FE1217915C95F93899E4C25957FD7E6123F6AD616C5C1EE97E1F5D5E0C09E4BD8F9FC1E04EB6AF0993FF9439CEDBD8C8DCB97A3D2EE802FC76C3C17ECF4598A5F5B2F14161F9B01E2F1160AB38535CF650DD258CFB382B916D915F686F802189C13DEA95188D65534722652AFE419CD27EFEFD5890A63AFAD8F2233C4989DDA671F898CCAF6926A83E2C7640B66B2188D2524BA5F1908223A1AC64034869ACA32C48699EDD58EFEC141246825FBBC28F3FA604BA7102CF7A3BBEB94B210535924D3592CE8E810B740756510A964427613B10417621BE2B188E860D4D4D6C8826A5DEC0A2FA67E23401364B888281F7401A0B90875779FC1C2458B71FAF419048204511FCA826E4446A2C2A0F3960770EEDC192C5EB808A74E9E45755D0DAA6B2A90898D62687804D5750DE8EFEF939D0EB7F8DCC6B3DF083EBC2FAD7C022BFF4E2016EA64222E35FE18E81E1C1C1417127723ACF84170E642452A1F5D1EBD7DBDE2FA696F572E0E3346A603D072AE96FD4C25E338DDD585868666D89D2EA99EC2CCC5CAAA72D94D321847C0E33CA4755F535D87506844DC2EE72E9CC592654B05F4FAAFF4A2B9A505172E5E90EF3C2EE5CF1E1E61A157BFCCDB8B17CFA3ADAD5D3206A927E2F3F931303028EFC28ADDDCADB27D98D24DD78ACFA3C61477630D4D8D721FBA8A16B4B44A1626E3094D2DCDD276DC99F45EB9AC38F9628557C8BB30E188EE3A8E53EA7BB0BDD8CE4CA6A96F6C989378DD9CDC540F9849B338D4F1A2522E2BF9D0C0208E771F47D2060CF60F63D1D24E0C0FF54B265C269995F2ECDBB66F45CF952BB874F13252199BF800D3E904B66DDE22D790CCACBC5B43F9498B276D7180C61AD8D279E3968873C12A4FB1D47C2E8BEECB7D0885C3F8977FFC2A9CA339445349DCF9FE0770F743BF0537D2E8ACAD1316820A6C6832984E0428F6935A178D6BAD64D6009815B08B2D6AF1A74A650F3BB25A08487CB49261A902A0E24717D172155C5554C402F7D51A6C190FEC54B04E77B15C8B0A629A9265347A7359848647C45DE2743990411A9178047E4F506891E1A111F8CA2B914CA4E0F7D964E18B86A3E2A6B2331640FF77282C559FC9CA618D3CBAC1B8E68C84861089C6C42A927542760557B304C68096C582BE1640F35D255142A8674CB450DACFB96C124E1B8B57399064D6AA28EBAB7249B448496174695951327D39700CADCB58F26637626515E403893AA187D620DD0A523E4A2A99E8FC3799C99AC72EC92BD4592E4CB1E285BB780C5DCB8256E86E58329AE2270419AAE5E9D2564CF4D2F100E12BEBD80DCB1C8A41A5294C52424D620C6ABEC9122DA2FD7A97C58D27B30265B7AC7C7F26D149BD8A62C398A4151588557B60B6BB50F3E4BA85C0A8B03BF43BE43318A5C6A24E3612EAA2CA1CCCEB776BDD6D19E39A6552B2A0AF853A160BC00CE4643C81FEA101D96271307362D22F49FF6A2695118B837E50AEB03CA7BA46E92AB01C515565D59438B1E33D96092BB2E33559433311C4F92CF4B0840DB8141E45FF95017CFF9BDF41FFC53E61177CE60F3E8DCAA67A34D757A3BEA25CF9A10D614F2984AB3961E1654F069C2768BE71BE363B88C2FDCD64BCBA8134276AEA3719F70CB313A06F9116973FE047341617BF2A8B9C8A9F9FC916B063EBB66DD8B3E75DF1875314885847AD8473172E883FD8EFF52A7D912C652D999DC80C3397F885D988DC0E2B4DE06BBBB08A1FF27A34BB899A40806E8CD9634688E9DB996DCB899E67B2DF9BB965FA867389567CE9A35AA014249CC44898AC85C84015B7B72695D658261345EF27F108F943C60A1C997F91B9618A1A01E14402874E9C86D3E7C57E5D01BAB3B31D8970046B972F819DDB2BAF47C939EAB242F97C0D2D905F4C619BCA33CED763CD82C3400F591FF4C326922954949723343282744A5989A9744A5C187DBD7D2282C3BFB352B5CBE94468242C404E77006BC7114C08D0B4AAA8DB40638A5BD9B2B28040B361334EA64DAE07D086A668B54E2773CD9BE51833C74C42CCCDF2DCB3FD9CADADA5449509DB384F78D7142DB18A34E1DCFA3B95BD186CB192F7AD01B3096F34C903F2B69016F6A6E59910ABDA0E27998059A02F11C7CBEFBD07B83C188D46B06CE142AC6F69848F81974C5622DB3EBB1D1EAA70B99588AA176B59C200002000494441544A8653A9ADB7EAC7BAD8E6930D0A1E9131AA77AAAA05B7A44A254F38B6F9B62958A422242F63C35020951B4BA5B44FFE3391057DAB82335BA838107D2B8FC1C98F08905D33952134954B5FF7D839B9A91E0853F4418F4DB92D9E24C6C7462026F792F424EBE0B2B20D66A2F5F2B020FE0E155423B2523D575E4C8BBDD0279A1627B372C9523320C0804A9E089D433211477434029BC705BF2FA8448DF2E2372A38373B6E8E996889A95DA3386B6BBC00ACE92BF3CEF964078B2603EF6A1829C57DCBF38AB3D8A6023493C9241C8F6133B596987F47E7FDDD1603E8565E8CA6D20325809EA0B5AC169775525B831F66A232BA4D0BDAD0CAAC053EA7D229D73DD6B2BCA8B46F9D6822E5E76D486633387BFE026C991C7C2E8FD45C639092BE564FC02DBCD2A686FA3C5798E7A71309118D51E9E7AEBC0FD0F80767ECD9E7F84257072DD50359D921C5C060F591F2586B9072BCD729F6A9CE24404FE55A73DCD493BEFD7881DE499F7C1B1C58F2414FA293AD206D1D50D609C3BFD3C5410BDA7C8A417C12B7BAFE21DA22968398A9A8015A027E0C2A53690BC07FFD7FFE1B962F5A8CC87018DEB24A9D28E14277CF596CBFE30EDCB9658BF8468DAA1D4332A49D31EA9F2458279302E456E1F85B051C8A990A13A53BB3698B8FB1B685354BF146FDF6D7B3A08BAD7BB530CFD946F4868772F11C318B9FB53D67EC2637F1854A003DCDCEB36EFD0D6833838EFC519385772DFEF0346FA94ED37E5049E990D46F9ACE4A805CD1926C52E0522A1A8B1C80A2D1712A87C223A8282B137D5DA67393C3CA238C8297AAFAACB408C827E57B918A56AC716105879BDE029A92C36B0A948C6974F2443EE8695CB274CA4DDE0225809E66078EE79B253B805C595A9EE3595ED3BCD598D394F84B41CC3C341292E29F81B23249736EA96FC48573E7E1F17944E798890375A25B10462414128A6082B5EB48F8B73B108BC551DB508F603020AC0EA584A6E43F09D4CC9A32EF4AD6835534C7EA02B1BA066E2AD74809A067625896AE314B2D5002E86936EC7800CD6C20021B818C9FD9B02E959743952262E0EFECB9B33874FC181A17B420154FA0B3B50DA78E1E930C41568A70D99DE858D88923478FA2AEAA1ABD7D7D7079BDA8AF6F407FEF0052A93436DFB11565015F9E1266A41CCDB65A54C6D269C94023AD8C59571305766E85EDF73487C6B44F2B59D0D36EBA5BF6C41240CF50D7128C0962D44C200F76B6005A158D655202F5A50BEE0B919E908A16AA3E1EDD164AB14D05B64425359391CC37A6A51240D571927655908B66C50DCD85B6BA68CC82C44588C904C69AB68AF49B77B6BA4066A8796F8BCB9400FAB6E8E629BD6409A0A7D45C571F6C0D20F25BE6E253BD6DD62C4802AA56CE20406B61CD7C0AB9911CA59B4280D65A0DC60644A2AA24BC646BE553CE553ABB4864E44B5816825086FD20A0AE858F247B52CB92F25AC6AD635A68D6DEFF06FB6B3E9F5E02E8F9DC3B73F36C2580BEC1762FA6E1916A57CC85BEC15B149DAEC0548B78A8EF44D45CFFA9F0ABF89FA5CC914EAAC9D91C484B00308CAACA0A5551C5304344B7208FFD63EE399E7FD9FCCD148965050FBA3EA839AC123C8A8A6799E7D3572EE61F144A45E5F3CD67B6D96E82AB9500FA26E8A4DFF02396007A861BDC50EDC6E34FCFF0AD267DB9313441B2394642280F96E54154828E26496E8ACC2D452AC921958C21121D85D3E182D71380D3E156863E038E22FE220E10A4346E6BC551956A4E811DA5954F6D1F75AC9D9AD953CBC49B7483CCD3034B003D4F3B660E1FAB04D033DCF804682A9229C3562BD7CD315FD500B4E1F3D2EAA51605F526ACFCDAE96886280F8A29EB45E1A034E2B1246C70C0E5768A6605019A40CE2A3323992C2EF40E4BE180B6A66A29BCEAA67FDC4E7FBA5200536A6374B694007A868767E97237590B94007A863B8C3E68037C6233E66BCBCDF08DA670B9F1AC7972B6456ED3A974EDC663A54CFE16AA0289127C547E12EADDC61371245953D01780D3EBC5403C8BE7DF7807EB37AE432E67C7A1437BF1D0D64D68F0B9A418822885DA00D670A6C0A8FC4DC07AF24F72331F59B2A06FE6DE9B9D672F01F40CB76B71B2CA0C5F7E5A97B32E12E67713E4334560A76DED8BAE74415C9EE66F867F73A8EA8B84EBBED028467276ECDCBB17F7AC5D85D75F7D1D2E8F1FEB36AFC3C5C110362C5B8C2A560897E2ADCA8266F92829212562CED37AED9BEEA41240DF745D36EB0F5C02E8196E6266E0314DDA6413CEF0E5A775B9F1AC6332304899E3B31AC6C5B4981746685F287DF435EB5AD976554ED59EB3210507F6749F43657D2D9EFEFAD77062EF5E291EBB66FB76DCF1F08368696C407B3028AE0E8A3C29A399D7D3003DADB7BEF94E2A01F4CDD767B3FDC425809EE116264093CD605C07337CF9295F6E3C178B016CFAA14DE6E3F45D1CA68E84922A356C92942DC73A332AA1060EEC3C7556CA81FDC3DFFE0D52434352F1C35F5B830FFFD193527B6D6159995479518145FEDF5AB571CAAF7D539E5002E89BB2DB66F5A14B003DC3CDCBD4685AA2E406CF07FFF3F55E8F6E0E060CE98BBE118036C40B870168913FA5059C819DA5916C0E1CE91B40286B43F4EC09FCE85BDF46CAE6C0273EF3243CE565686B6E424B30080F83A9363A4C9870C37257AA74932A7BA54CEBF9DEA637329C4A007D23AD776B9E5B02E819EE5702343FB44CE7339898E413FACCC93A993E4093C1ACA279768B059D11F74656AC6A7AA2230EE09DE3A7E1CCD8A550261CD40109A1A1A61A0D15E5F0650027D270FB58C8B650A74DD5189C3F8C98191E2E632E5702E8D96CDD9BF3DA25809EE17EA3554A3A9BD1E398E1CBCFE8E508CAF443935E478B7F3A343BB16A55F959458AD385392570486E9D9423714AA1DD880DE8198AA06F98453FB368A872A221E8878F7CE764024C7661F517BBC30D5F59B958CD4CA62157DA2C28B351A166461BF5062E5602E81B68BC5BF4D41240CF70C7524B999A1CF443CFE78F951BCD92F046C77A5A81428168165BE5870439C5FF2EA49203F17406C28ED66E6A661BBA1C0E24924978DC4E7825638595AAED48A6D2181989C11F08C0E37628A0B66426CEE79DC98DF47909A06FA4F56ECD734B003DC3FD4A70A69B837EDDF9FE3140C76021B53424A964AA493512D0E37F8CFCBF726908574EFEAE3CD4274E9C444F6F1F9C1E17B2A92C464722707ABC48A692D8B67533AA2ACB15C06773C8E9B2F3F1585C0AB3129CE93232CC98293FE37CEF08FD7C2580BE493AEA37F89825809EE1C6A606B300B485BE26B7986755EF0D38936E47970C5D3356CADDA49B45A7702BD6055F936CE6029B239D49C2E9B08B46F595DE5E641C7604BC7E5CB9D8076FB00C417F104D8D8DA8A9AF103C27B52E6DCB81C503E8DEE0731AA9535E9F4A8104EC5B11A44B003DE95177DB1C5802E8A974B555DCDD923C61FD73329311B00BFAFC4A5FD97C69C488A672BF593CD6EA2620405326957E68D203AD99877C84EB82613EDB4FB12E5426216491E275699567695D4BB517269DD8904EA5E55E69967EC9D13542DD0D31B945BB2393C9C1E3750B485B1368D8AED4A436D44029726B49A737CF5DCCF8B8BE4BC4D4332F6A6C595055CD47F529127F9A85BE2901F42C34EA4D7EC912404FA5032701D04C714EC4130888A8BDAEAAAD05DA04EC4CE6F23C4863B60217F9DB0C6C5AEB104EA66972192D86A45F8EA04C3FFCC1830705A409C495D54A7E95F770D89CF27D474787042859099D1F1EC7E359328C7FDBB871832E0CA09E82CF6A0284046AFE10A0B9009867B61674B51E7FFD45462F0C5A30CA9AB5486D10531E8121D0D986E912404F66C4DD5EC794007A26FB9BA4854C0A89780C5EBA3838A96DF4C92A43DAAAE85950C89FC90798DAB5AC004D3EF478C506260AC81980A6B4A9CDC1C20039E1565FB97225CF05F7FA7D02D02CBB655205E9AA20C0864221B1B41954E5F7F4DD13A819B474BB0B3A21069CADCF43D707419E7FE37956D7C778155FC66F1D0B40171DA0722255FD1AF399CDACF312404F6DFCDE0E4797007AA25E2EB274C7357CF3967516D96C1AC958141E5AD0B2A5D75A125A4FD3EAF1986D8B6CC257D362FE86036D849EA69AA67E3D0EB5F9AED88A35B439E3A230006C9EB9D85D617D97E2CADCF4A313E8CD0EC05A3791D7BD5EE56E063195753C8E725E7167E5B73F13B5ECF4BE2F01F4F4DAED563EAB04D013F5AE0591D5AF053F47DE9AB2B83ED2C8201A8BC1EFF5499AB35D978FD21B75E566D59C07A5FD3677A29AC5C04AD783958132195E74F1358AFDD7E67BABFBA1B8C98B7DDC56501FAF7BAC3E662BA01BBF37CFA7DB43AAC6E8CFB5FCE88AC32DCB47C1BB91EF4F4BC74A9184F10B1A4C348426FB7D09A027DB52B7CF7125809EA8AFC705E8F1405A995729E4309A88C3E7F6C061B70B2B586D904D42B43A379F1E6D580F133DC72C7C6F054203ACA6649760D124D2ABAD2E072B388F17A81B2F8837DE7DAE17A4B45ADEC6FAB6360DAD651EC360227FA7EBA3B81C97F5F8AB764479B68D4563644CDBCF5EB0B004D0B330C86FF24B96007A8A1D68B2E6789A04A2A4DC9465D2E67222864FBFAB436B2D4BC2861CA73DD1628CCDF27E798AEF650E3756287DC213F99FA7798B593FCD3C377DD4EC0B5AEF7C1FFEDF6AC9E7AD6A6BF0577CCE5971955B774CAAB7E88D2E2CB933FD2225809EE916BDF9AF5702E829F7A1AA966D009A55B47359BA9AB566443687682402B7CFA3009A3430D6E8337503CDFDE6273E0BE7D854ED9E8C8B63CACD37CB2714FBBC6945D3476D44AC4823B4BA3ED83FB25ECADAC98E540FC8725BAA9F0D52AB4C49F6F76C51EE4A003DCB83E326BC7C09A0A7DC69868FA10CE29C8DAAC7850FFF363A1A85973C5E97531C180EEA49181030C6B3A98D3AE5FBCFEE09C63DC0809B0916DECC96747E3D24FF5A2711193A9FDBEAA336002D9DCA4D9143E2BB795F14B368F81DB31C6789CA5102E8D91DDB37E3D54B003D41AF8DF151CA3F74296CAAB4D9548233FF4C904E01188E27D133144620E0811740655940643419AE72C8CCCF68494D05EB36A9CE377B7ECDE90C4A23A06414F9E439AF91026EF50E5C13B72675D0749E74E273C66370F06FA4F491B35E565E26B10229D42506B32AD9C5BE550571351EEB55587F3DF18DA7714409A0A7D168B7F82925809E0E406B6835004D90E64FCFC030BA2EF58A9CA6CDE1442A1E466D552516B734C26BB7C325842E65818B9F53409B5CDF5932C9A63978E9122080B1B6E244D6F3A4B07752074DF361AF715A71F0D27A98718310A8A3B1A8542527487B3D3ED8EC0EA419ECB501896C0E83A151E99DAA8A3278EC904577B696D31240CFEC18B815AE5602E849F4623EB06FBC1BC64F490D376E9DA10A9DBEF8EA9B58BB7C09FEF95FBE89BEFE213CF0E0FD685AD08CC59DED68282B1B135E329762C8693E7D8CC549853B02343FD7F3454F0A7B2775D0CCB5C2F51695620A1F2DE44C3A85442226198E4E8F1F769F1FFD8924DED97F0CAD0B5A64493D77E132B6AD5D8A16AF47F63CB3F12901F46CB4EACD7DCD12404FA2FF8C8F592CA7BCC3593996397913B0A1BB7F08499B1D075F7F01BFFAD92FE074FAE1F6FAF0E93FFD335435D661456550009A60EED417319C80493CC26FF410436523E58E62FEFCDC8AE2447C2F05E6EC45A51712198921E1F4E357474E63695B1DCE1E7A57AAE02E5AB319DD1707F1E8A64570CB79DCF764158BBDD8FD9367804C6D6F5402E8DFE830BF296E5602E889BA490281AA6A88C32032E733C199FE64FA9E6D0E9C190C61289E40CFA177F1A36F7F172E7719BCC1203EF1277F8CDAC63A2CAD2C136706CF7011A0C5AA9CBD80D344AF75ADEFAD892704686A631851A2E95E733E9F9767A5E748AD53443A56217FBBEB22BA8FEEC3AE177F2D0C9C3B1F7C1F16AD5E8FF56D8D68AC2A17C287685B67B54A8715A44B003D9FBBFCA67AB612404FD45D1AA055C5106D328B4999138026ED2A95B149B5909FBDF81A1EBE730B7EFCF42F70EAD4593CF1074F2096CBA2A5A906AD01BF00B4C2760274A1FAC83C73414B8207AD426A6A70DB7F33685B4FD48DD75C90C48C368B300BDC02A7CE5D44042E3CF3F40F71E6C841E9F98E356BF1D8473F8A402A8E651D6D63005A78EE9682027966DE14A30B250B7ABABD78EB9E5702E889FA561CD08AFB2C006DFD64538AE76C73220AC8CFD32FBE8375EB57A3CC039C3F3F840A6F166B172E40402E439EAD11E7516C81F9F6B1EA5C18195293E431DF9E75269EC7107378AD34C3833607A2391B7EFAC67E789221BCFEE39F206B4BE3C18F7E14596F2D1EDDB61A7E870A148A58613E09493FCD0D746909A067A2476FAD6B94007AD2FD5910D511039A90CD124D02DD0EF13F4BDDBD641A272FF48AAA5D536D2DAA7C4E547A9C70093F4B93F2728AB921D87F03137AD28F3E8503AD2E0EC3896662C7F5D2A5A770F97976A8E23C4B48C06E439A01432A12DA8077BB2E49828B239744DA9645C6EE83D7E1C4868E46786C86D7AE3344B5152E2F7703FD5902E879363CE6C1E394007AD29DA0B41914518EB6744E2CE2443402A7D383ACC30D386C18BC7C11D54D8DC2EEE077B97416E5C14021C59841252280F9CC16676BD2EF35F64063110A38391C79E1FDF95E63717AAF9B55456DB5EA2001DAEC6F12D92C2E8422E8EA1B40DA6147675D2DDA825EF8EC7671555DB5FF1943989FDED394007A7AED762B9F550268DDBBC5023D6214C9F65523A82498D0BAB24B028383209DCBE1E8A1FD0804CA70E0E8710C0C0E03E918BC5555188AC551E3F320319A462E63436363191219E0FE071F40D0E316BB9B0129A9BAA2EF657D86626ADB447CE4D918A4C6DDD1DFDF2F6C8E6269D09B9FD9C1588062A3A7533964722995B4428952BB5D76430E9703996C066E9B1D4E5958D542ED70D891CD64A4028D18CE33B0152A01F46C8CE29BFB9A2580B600B4E9CAB12A6F045143C5CA491203B3CD582FCF9ECB22343488442A85482481742687642282ACCB0587D78B0A9F13BD97FA61B3B91008DA90B5BBB0A07D217C76FAA21990A2F48ED282306048CBB558D06732AA72B3310CCDA2C0CC427E98FE6D05A3B9583466F63D09B6196433361C3C7814239161783D1E24936994955762A06F00EBD6ACC6C123FBE1F5FAE1B0BB108B45A57F183CADA9A9C2D2254B44DB6326744B4A003DB3BD7B2B5CAD04D0E3F42281872A68CCA66B6C6A96ED6C321EE35486D3EB13800EF50FA2B6A61A9954020EB70BB99C1D67CE9C457D4D35E07221924CA1B6C28FD1D1B854AF8E448690CED9110C94C14F710E5A5D0E97A4178B2A9E5D552329063D8233C19B9F9900818906ED78A0CBFB0F0F0F4BE20A9F6726ACC5899EE337F37D16E96C4ACA70ED7A6737B28E1C1C4E3772193B62D151786C2EAC59B91A5D67BB91CA6570BAFB0C92F128962D592AAE9FCE85EDA8AAACBABA40F0341FBE04D0D36CB85BF8B412405B2C68034E2CFD646AEA657376F83D2EB43636E0F4F93392FEEBF397C3E370A1A6AA02E7CE9E41341583D3E14664348A7BEFBD1B23A1118C44A2B878FE22CACBAB104BA6104DC450555189442C86546C14B5755588C66358B7661D76EFDE23E04B4B95BC633E074B3EAD5AB5529771D24AA5BFC1A0A2D5DD62CA55B1FEDF1825B85B60629894FB4C96E9DE36449369715BA42351785D5EA11A3A6C0E649D392499CB92CDC0EF758D0D9A1A2687B53DA6E1932E01F42D30A066F8154A005DE4E22030D162649286DD413E95134EE4E07739D1171A009C1E9ABEA04E9DD36EC795DECBA8ACAB123F66369313AB3AC98AD699AC54AF26B8C59369610890C9918AC7E1F6B8E91F91EB5704CBC452A7C4A7CBA500301E67856D2F2A2ACAB5756D53996B37C01098CAB829D6B1E03B50098E0B171790E2925353B9F67C3B568BD7A9B6CDA470E8D009D89C6E74779F40477B3B7A2EF5A2A23C80F2CA4AA4B34082C5187C5E2C5EBC080E27DD5F6AE72372B225809E6FDD7BD33F4F09A08BBA708C5603DD0B742D307143A76767ED0E49F0A50F9AEE896C2E839CC386483406AFC72BA0ABE4451904A4C75A4DDC0C7248C69270D9E89F760BE14E94D278ACD6F2379AFED6FF67A9256DA79B4351BA7E13205DB09E0B8B026B2D46225111BE77389CD75830741EBC296070D582925735993F13475BBA2C7ACBC4A3C84804FDFDC328AF2BC7C8E808827E1F92B151385C6EA45336B83C1E64D259D4D5D5283956FD8E2C5D5602E8F9D3ADB7CA9394007A829E2C408AA49B15F4DBB5EF98C4BB6C2E87583C86803FA04094D79413AD4AD14A00BAAFAF0F35B5B5CA8F6B8E9D57A389CC06C55C3165F814F92C8B4874146E97072E3BAB746BFAB0A4BC2BAD649B2DAD45B259A84083974E7B56893EE48D5391E437B415986ABB16893AA9BE37B256BCD8EC72224B2E8EA976D8AD7F7C09A06FA08F8DA5C9883E5D14DCFE5FEFC3E3E9D3A4ABA0BCBC5C0E9D6F013705A4053109EA9088FD9F03E8A70D87A3A8AEA840369785CD9E838D991DDC55D8B8ABE07159D88487E82E54275170AF417C7641EE06BA73CE4F2D01F49C77C1BC7B801240DF4097185F2C7DC8F41D338836990FFDDB1315339DCC7566E3987C6C6BCC2F6AF7C03250DCFED75697C366CF22934DC341956B9B036956D2D68C13BB3DA74B4631A14771879539AE2DE7796A40CF467B4EE59A25809E4A6BDD1EC796007A9AFD6CF555533BB9AAAAEABA1434636D13D445285E3336E69B05ADCB2D5ABC10668BCF6018039F718C8E2624804981A074D626AA6ECCAA64520FDD3D4A9F44E5E411A045313B67716D94007ADC515702E8694EC65BF8B412404FB3738DF54CA0E5EF8180F23F4FE4E2E0314C46E17953B1BAA7F998533F4D6B5118DF3B839DF46F30304A39215AD197C254B8F34B709330ECCB66E191231CF2BDF2DD98D2BA5ABD4FDC26CAEF5EFA8CDF0225802E8D8CE2162801F434C784B1A0E9AEA0F52C9834098036B7236D8D205D515131CD2798ADD314181B4D0A072D6206426D368CC67B319208E1DC6800478F9F83DBE1823FE0C5C39B57239849C12602C95AA5420AAF2A0057556398B5A7407CDE060967AB492779DD12404FB2A16EA3C34A003DCDCE36597F23232302B246A7E29AC555753283D5D5C1602113546849179F3711D84FF3B1FFFFF6AEAC398EEB3A7FD33D1B96198000487011297011C5454B28D9946C2596652B6549919D384EB9E24A2AE507975FF2903757C50FCEB32B3F2029BFA4EC2CAE9415DB522A2E57D90E1D45916849259292B883A448821B4080008101304B77A7BE7BFB0E9A43806800B3F4A04FAB280033B7FB9EFECE9DAFCF9C7B96079FA6FCCEBA7810CB4E68AFB1F61F97130E4E9C7F0397478F6143F717F0D0A603AA1605D269DCB8318AC38FED43C6D6354A74F08A1FF15235987524882ED92A1B858B294208BA21ABBAAD2F2A04BD06F5D102662CACD91C0C43AAC124109342CD880E15531B38C25C6B0DA22F79AA8EE208C4D825748954D2EBD9B10F7179E202B2B35BF0A31FFC18A55219CF3CF71C9E7EEE796CDDB6111BBBBB90F12A2AB1878DBD8CA5ACC3F5745D4F4DD0E2E610826EC4EA5D7FD714825E834E19BDC10242B482550534D75DB25E466D9D65E31261781EDD1D4C0059CE0A5F83A8A14E5D080366BC327DC624D38A8AE7F6BC044E5CBB854C5F0FFEE39FFE05E78E1D43D24A209BCDE0EBDFFE1B6CDAB90DDBBAB2E88483A44AD04901AE6F29FB8D6884961FAC06B1A0432DD3580D12825EA5BAB9D1471785215643B8612F67089B3F49F4DC640C43F461AFBFFA71B495FD2D4245D0BA0B8C0B1B97278BB83659C4F8A55378ED9F7F849495C0D0DE3D78F14FFE14835B366273AE0B698F232BB012C985D03A61E650EA10820E0553AC060941AF52DDA65F9F21E80759CF668AA0156D5E23D1D382E6F548D2E6688D8B43BB21E8E470FD08668B49277C95858400FCDF893340CA4269BA8099A949EC7EFC494C8FDFC6A30F6DC240BE473936D4366095947D67F62A718ED36942D071D276B87B15820E87D37DA30A05765249AAAA66A604E783EA232F46E086B04D71A6818181FBCA8DAE52BC559EA60BD8B3294145D5AA066CDDB81CAE0D94E161D671706A7C12274F5F82532C61DBB687F0CCEECDE84B02535333C877E7914EA5AA6E666E369A2DC10856E258254E8D394D08BA31B8B6F35585A097D15E2DE91A526597918D1B37D6A5B29B890861C20BCB8CB6D68AD6511B7EC2B70EEA60E127063DB3671F8B3EF9A9E0D38522F2DD19A4548719864BBB989ABAABFCF2A95452557A73136C4BA0CD6926B2E83C1656E7D3B5AF9B51E3BA5D3EA042D0EDA2A9E6C92904BD0AACB9B1C7FA1BA676F35A36F7826E0FFAA26991332A24485C8BB946562176F853FC56D79E5F418FAC5A761C5CBA7409A363A3E8DDD087D9B979CC146690EBEC84C3D2AA95320E1F3EAC8899D12D74DB64B359A4553303D35C9517B6EE0B297CD0378FF042B7FF4821E8F6D761BDEF40083A24A2411261720AC999A171C17654DA4A5CDD8E984901A7EB84D76EA56559BD57538AD3F354079123478EA822AAF3C5B2AA913AB87933CE9D3A8D6DDBB6A96251AFBCF20A9249EDD0A06F9D0F1C62A41F644C05E73B0B31D04D7FF084D475AB860941B70AF9E8CE2B041D4237412221F1303985D9838BB93F5643D00BF5973D657D1A2BBA5ED70F718BD5219A933DD57040974ED52DAED83895244CAB982DBFE8B5989D2F229B4C2952360D0554E2A1DF63918D5519E962AAF79987CEFA6A9BB512741F3C5608BA7E58AE972B094187D4A4214B5A923C4854F5F86A1E24E7A0E5C9ECC4DAE6B121455DD3304759BA09CC4C4F63F4D6A8DA0865A623AD60126DB15452644CD7F486BE0D9818BD8D64D2561D60D86D84E75A960DC7A9A807CDC040BFC2890F1EDE8FA959C26F0C613657D774336D76B210749B29AC09E20A41AF10645ACFDC04237105ADE5B59275B0AB371F022605DC34935D8B9F7B25B7A802ED5C17C3178671E9C245B56939323282679F7D16D7AE5FC3E8D818F2B95E942B15ECDAB513273FFA58954E257953C6DEDE0D989D2D28421E1A1AC2BE7D8FFA1D615C65819BFA23C46FAD98ADE4BEDA61AC10743B68A9B9320A4187C0DB100937BE4832267B30C4A9AB1EC2880E6345378B9CB57363E1A8F5A607DF33A3CE9F1B56FDF9745B2E761E27C1EB9F8B1DC645440C4D03DAA01FBF99F7BA6AE534E84421E80601DBC69715825E4679411704C985D66D98D2A26B5D132605DC3C0C9A656D3E88A06B099C7FDF1E63B8E1BDF1DBCB35B835F5B0F9D37C1B09E265489AAFADC6A7BF56EC5B75BE1074AB908FEEBC42D02175438234AE0786C1359A386A53C01B3D9F81613982AE1D37363AAAE2C16BADE0A5600D3E68983D4997870EC74B575D1E718D8F16820EF9618CD13021E810CA36A4C2E4149348D268C2E49CB4A24962C178EB10E23675C89D3BDA15C32494B0EE09DE5B30B392E1787C8D81BB162900001A4049444154BE6C1E41BF7BA3716E2A58CB4C26041D256D44431621E8902E0E12E5CCCC0C7A7B7B1B6E3D2B57821FAF363535A50A329994F2482C9B8099CD64954C86A1763AE5DDC8BE40ACF77AB24D0661ED06ABA96DC2CD4315CA1733F706EF57083A12AB3B524208418750074985C92941726EB4656708DAD48CEEEBEB8B0E690508BA582AC2F39C6AD8E1BDC41A68141BC03918571E246CFECE68106669126B7DC326E93C5C0250B5DE47B5E9ED92CE167F4B343ACD0384A0437C18633644083A84C26B49B2591B76C61A25617183921B6AB59665ABB3F118D912DC385D0B36C158735EB3B3AB03764AF56841C2D3ED6735267E2D269641F51C15776DBA863B7E7126DDD5C5EF0DC0D2D6E6CFEA2FAC2A42F28F4E871721E8101FC6980D11820EA17013E35B1B1616E2D4350D0986F791B0160BEF6BB425BFDC0DD48BA0CD83C63C94F850E43DB31A5E67A60349CB062B9F7A16EB53EB46B696B2AEB5CDECB239804532D76F576B5A93867DD7CBBD36B85FA62F421D5E84A0975B6DF17B5F087A199D932848D0246753507F2D5662D825169C83BFB34607FDD0C1F2A6E65ACD906729B949D0C4871B7C613709578241B154C1FCCC3C726C6890B6E0582E1C38AA821E6BEB59245FC743C54AC24BD848A9668A34B17557716D25F3BFE8B83296BA7F21E8B02B233EE384A043103443C1B851D78AD4EBA04539393909FAA2A354AED324EF045B76D5BA61C27C9C82BEE885FB634D265AC71EEE4C4EA033DB815436A34A9E6694554CFAF52D68DFCD61AB9EB7B49A3D382A21DDD38D6C49D0EC101374778411AC896384A09B08769B4C2504BD8CA21A69213E68EA60828C2169F595DF4FEEA86D32DBAAF5669277D6DA53B1F67E15492B9F06E0D97464B8281766E114CBE84877C29A9CC24CAE1B1FDD1E8753B1D0DDDD851D9B7BD063695BD94DF00C36A97591ACF657A475AD9D22EA21D22AD0969857083A620A89803842D0CB28C1902209886444626C864BA136D2C158A5B4A2E94E08D6B268863C4BC164B202CD378CD5CAB2E879BA3088F24393582DCF815BACE0CCAF8EA0F0FE47B832B811BBFEFCAB48A73398B85BC4D8CD51BCFCF45ED53C8087A5AC67DDC04B9739D5512542D011601E1121140242D03E4CB504114C4E09B6A2325FC55B55AF99F1C2B5F5405AB951687CF48C5D262675F743935B13AC7CC74DBD0AFB6E61E49D6378EB07FF86A12F7D0EBF99B88AD3A72FE095575FC5F6471E452A9DC6C19DDB91F4808C4FD2FEAEE1424847A0E64894AC68B1A0437156AC06094107D45D1BB2468B99C929CC9433C76A2DC47AAD2ACE4F994CC81D2DE9561FDCC0E4266AB081417D64F254E406095A15FCE77F151709D7C66FDF38824287837FFFD98F91B26C58C92CFEF6EFBE87A367CFE3A5E77F1F6CBF9BF1DB75293F89652C671DACA77DD7B4A7A343D142D0F55935EBE92A42D035041DCC8633A5455927224A046D6A58F0C1611E18ADB4A2F9C0A0056DFCE2F594457B925D381E89D456D11BE504F0AFBFFD0076E90E7EFDDA6B48C38395CEE23BDFFB2EDE3B731E2F3FFF1C3A01A41CBFBBB89F2F73AF6B43C778043BBCB4FA832D04DD6A0D446F7E21E8808BA3563D2CF969A226A2A23A43C84C01A7151D2C32D42A190D411B6BBE6EDF32940F5A7B265C8B492934842D14011CB97C133DD92CDEFFCFD771E3E2653CF3D21F22BFE361F4D8C081ED5BC1472ADD1C2AAB4539A46B7DCF42D0AD5A2F326F780484A06BB0326E0E5AA9FCC7D2A2513B8C1F9CE9E76CBDD52A7F387131E9D92646BBDE998D2E5D1ACAB74DA704D9DAA6271AA3E5124E5F1A41A2C2C24B36BC149D15653CB76F0FD2AA73B8870493597C4786DA1C24D157B70B75B28B6ADF1591432CE88828224262C490A01D95286C2A3C2CE8827E4EDD7D9A9FDB994201D94C56258698C35460AB9B85B88A85A0E6A6FC1E502A1751AE94D1D1D5093B9888E117A4A8D6A558C53C614FA13CDCB4646E08FDD024418561E0026BF1F2BABC515ACE34A399BFCD8C410FA8242B982C7B98982B29C24E5B16367565D1AD1257D831C090B4329F75F44640109277D5C5B11601C30215629C1074089062362486043DEFB99ECE3A5309673A820B0C0FD0A462A970BAB95211D94C17526C0DA238628172AA7EEA45164BA33FEB7E029D929B8D5DA79D0252D9343ABC8CDEEE523B601E5C2678D0DE24AF3570512B1F71C5C5EC0CBB91F7E8441076555173EAFF2B7AE48B46BE15C85345DD4FDF666CF4ECDCBCAAD151745C541C0756D2865B7190B26D589E07DBB254424B523D6CFD4C421F8460BCB5DA206C24382BB84F0E15825E216031181E3F82764A9E972041EBBD7C9D154CEBCAC31C803BA5044AAE834ECB435FCA46CAB706FD720EF72D89A0A5B80AFE59E11273E0B03810237C5D5B65D9158A05D5713BD799F71F24FE25FD74676579369085B48BD7C3E4C4846A22ABFE4C300259BFAEC43024A84CFA9531A28AE2F04FE35CACC97DFEFCB0B2DAF9CF7CAB617C38372A1DD7433A93C60B9F7F1EDD5D9D7ED956F59D434B44B787C52EE47E14C70AE559A1C256345C087A4570C562700C095A9954CA22AE241CD82E29CCC254A582B74F7C023BD78B59670E994A199F3D38847C92E6203FD40BC4122C36DFDC55C2788692AEDC9648AB9F9EE3E2CED42472FD7DCA5E65B43013356CD6AB509974FCAB717E568FB58B2C6074EC16FAD95945398F74D1A2FBFD1CC6031C1E35B3CFA7FDEE50DDC2C7C66EABCD517ED3E1CFF1F171B0E8FFF6EDDBAB354B060737AAA812EA8AE7A5923AC1887F47250BB3160521E8F0EB222E23E347D06ED9D33519ACEAA6D1BCE7E167EF7D8CBD9B3701E3D3B0520914B2294C958117F7EF40B65A70472F8B051FB4F16306974BE3C850CDEDB8EAE162D92CB1E9A09CB031512CE1BDE14F7073741CE9640AFBF6EFC2EEDE1C3624696B9B0CBAC62D69D22EBB7DB3F5959A8D66AFB14C83D6B311610546343339B9594BAB9751222457A6DF1B1D9070E9FBE6181E2A3BDCF3E0382E52295BFD549BA89EEE7F58CF4EECF5465408BADE88B6FFF56247D0AE57F1122A77D8521667C90246A6A770EA93EB18F9E863BCFD8B5F2291B4F1F9AF7D155D5BB6E0C583FBD1D7A1E3A095CFD22F466CD21DEE351339AAC1046DC2CEE0AA99EE3816FEF7E333D890EFC0F8C83564D25964FB7B91B5D27862E73674FAB5291AB354751C1C6DE6F1094694F4FBFE66E35509FA277C095640CE3CE3F8F1E3CAADC1547292F1D0D010AE5DBBA67A199A10C303070EE0F2E5CBEAFD99C29C7275D0E5C15661C5E2BCB2E653A9243EF399CFDCE3DED0AE93150AD41820D55585A01B086E9B5E3A7604ED798EB6A05D4DADF33670FCF20564D33DF8C90F7F885B978651725C3CF2F4A7F0C24B2FE1E1AE0E3CB471A06A102E94AF34DFE16BBDD08D25680ACD4240CA8AF62C1CBD740D76BE0BFFF3D39FE3D4BBBF83E759F883975FC29E834F62E7F64DD8D29DC5421C4ABD57A99FE1974860FA6E011D1DDDB06C0B3458B57BE3DE5863E59959A108CC5234444A2B59F9991D47FD23B9F21F236D6855F3A828CB39892B5746B075EB163F0E5A47E7B086496D8D1321E8152A4486371581F811B44317874D96536CE1D8C0E8DC1C8E9E1DC19DEB17F1D61BAFAB68802F7CEDCF90E8DE882F1DDA87EE944E90B827BCCE2440282B2C48D2F78E0BB31915BC6EEDEF55AF80BFA9692C56156DE2026F0E5F44DF96417CFF3BDF45D6E1A69987C16D5BF1EA37BE892DDB366247AE53D5A45074A9FCB87A93CCFC1DB61BF762ABD2E4913072A2529855E9D8E9EE2E78094BF9C22D86C7298B9F51257456536A53CAA8A9EBBC2D26130BBA2DD4D454216347D0954A850E5C05B2CD0D242B81622281374F5D40AAA313B3B76FA22399423ADF07B752C1338FEE408A9B4B9E0B5B75F530A163A6978776B71A2226411A023485831EF455BAD6A20BA66ED7BEA7B600FD5E4E092F05D74DE0DDEB37E0E57378EFF537F0FE7F1F612D21FCF15F7C039BB7EFC2EEED8318ECEC408AF6B61FE35DBBBA6AE75BA945A9D0703D788EA3DC0E9DB96E1D2143EB9658F077D74182CF4446A024583BA4C1DF329AFA11AADF6442D0F5C372BD5C2976045D743D8F2E02C619247DE2752C1B775D17C33727706D6C1C5EB18C3DDBB762E7602FBA98C5E617EA0916D8B9A76A9BB2A6FD98DB6032842A36CF4A6CFAABF8830EBDB1C5FE7ABA225CF058207A96DE2C29D746C24DC3F312B8E539F8AFA3EFE185279FC4F4AD51D8691BE57C0FEE8EDDC2A71FD98DB40B24594FD9B7F88316B491CDCCB5AA080707A824B42F7F62721A03BD39F50C49D38BE4D2B5A0BF61A8C817858358D04BAD0321E8F542ABF5BB8FD811B4532E79A53289308D644A87A9D16FCA2E1DC58AA3FADAD95602F3C522D2990C922467CF53197B3A1A2001DB4EAAAFF30CBD23499284186D40FF68B95442369B51244BBFE872D5E64C8D69E372A8256665A092DC2CCBFF99D08CE827CC955300BDB4BF7CFB0394ED349C7209DB37E4F0E9038FA033E122AD73F096B5A06B5D1EA1961823265C4DCEA373B3B83D5F462E6D63534727BA123A7E84563FBD49B4AA19CE28F4BC34B242D0A1565DAC06C58EA0DF79EB4DAFEC59982FBBD8D0DD85345B28792E1EEADB80B3C39750283BE8EAC860B23087439F7A1297872FAA780FC6DAB22EF4DCDC3C2C2B895CAE1BB3B373EAB57C3E8777DF7D1F5BB76E4661661ACF3FFFB9257DBD8BB9188C551BB46883196F869C9565ED5BEB8C70D639282E2A4880B10A455D551359A63E7313112E6C4FC7FFF261622C5A3FDD5089A25FD316BBB6F4C3AF7FBA37E65DE0D2AD314C4C4F31425B65EF95E74A38F4E81EE4D84351E703F9BB830B73859F253E2385A0E3A3EBB0771A3B823E76FC032FDD95C3F0C54FB03197836301C96C12071EDA815FFDFA0886F63D8EE93B13C8E63AB067EF2338FDE10994E68B2ACC8B110503031B71777A468578CDCFCD2397EFC19E3DBB70ECF80995A4D1D991C5534F1DBACF0FBD948B23E802A10FF7CC9933B87AF52ABEF8C52FE2ECD9B38A34E7E78BE8EFEF53997367CE9CC281271EC77CC9414F771ED9245D301EAE5C1D455F6F2F7A7ABAF1D63BEFE0D52FBF823367CEA2B7B717232323989E99C1407FBF8A6450E9D18904F2F9BCFA66307C7E18F99E3C7AF23D3870605FD8B5A3FCDD57666671E5CA75607E16AFFDF4A718DABD0B2FFFD1CB3871F23CBEF2C267D1415F3F5DE7DC3134E53D57F010082DCC3A182804BD0E9458E75B881D41BB9E3AE0F9BE61137FA1929395C354D7DE60FA343710932A7A630175638D9A6408DDE95B338EAB7A946A3FB2B1481F14D6A532DB54676A3D7EA630AB48F9DCB97378F699CFAA9F2CE5D9D7D78F2B97AFE0C9DF7B0263A3373172ED1A868676E2EEDD02FAFA362093C9E2C30F3F52963C93360A85691C3A7408BF7BF71DCCCE16B17DC70EDD5ED571914C25512C95D099CDA23B9753216AE7CF9D4757771776EFDA8D271E3FA8657F805B44B94318430EE0DC5411E3D7AFE3C7FFF07DCC95CA989DAFE0AFBEF5D7E87BF800B6E69318CAA702F54E74FCB91C8B2320042D2BA31681D811F4F9F3E715DDD267FCF0C30FAB9FB48C754AB0A732D5F81A7DC76AD38C111D696EC84195F6BC79F326CAE5922236BA0776ECD881EBD7AFA9F7151907089AE7F3DCAD5BB7AAEBD586B4A90705133DFCD03766C1954A25B559D891ED52F3738E4A85B66A02994C0A6EB9A21F1EA43A5BC56720954EE1D2A54FB065EB566432695520890366E70AB06D1D23CCAA70D94C465DB352D131C4B69D50F75729B350947E0A7564B2DACD714F18E1FD26AF8A21077072BC88C2CDEBF8C93FFE3DE6E6CB28961DBCFAF5BFC4C3879EC54036815D799DFDC7F99547463609976421216821E8D813F49B6FBEE99168E92E2041D34265F17B5A9EFC9D044942E9EFEFC7F0F030BA733DEA3DFEA3BBE0C2850BAA4634098EE43B3838A8B2DD98B5A6D28ED34945DE263D99AF1D3C78F0BEBAD224653E08CE5F3887E9BBD3CA821D18D88472A98C8A538153F1303D338DFDFBF6A154AA2837453269034E45B9288676EEC2E8E82892A9140A73F3B83B7D57F9C39939373D39A52C6B1AE6A964466F5E96CB608718DE1BFFBE78F1220E1F3E8C1B376E546B3A531E62532997D0D1915561737BF7EE55F7597B180BFAF2DD026E5D1BC5AD8BC3F8F9EBBFC0F6A11DF8D6B7BF89B73F3C872F7FFE307A1823CE8D54B5A1BAE25A49B1FAC40A41C74ADDA16E36761634FD1BB5E165C10D39A246174530E42D18A2466227599BD03933AE36CE98EF93144D14C762D63309F1F4E9D3EAA1C07FECDE423224F16ACBB78CDDBBF78085F9F91061E4085D138C2EE9E9EDC1E4E45DCCCDCFAB9E89F45B9378395FFFC0065CBA78117D1BFA50762A4A5EDE130997D634E7215993D0F910E2C3850F15BEDFB7A11F85991935376B5790A0E9ABAEF5A19B2495390F78E7CC0574F6E5D1D5D1A922368E1DFB085F79E619F464B851E920E9A54CE5D185E6DAA19667BC060941C74BDF61EE367604EDD267507304134A167B2FB891574BEE663CAFB1D47BC16B9A718B95BC34E76BB237D97E2ECAE58A224FFA9855E2875F1744A7CC040BE4EB8A6FCA276E0AD2FB19901C4792D70D704D63023D4FD54FAE2F56756F185C82B1D3E65E0C8844932DA83EBA7C1D33F3F39C1C7B87B661A38AE0609B2A172955299F5BA89EEA8EB2F284EF304BB9FDC70841B7BF0EEB7D07B125E820F9D426922C966E1DB48017CBBE3324574BD8C176548B5D3738BE4A7E815AC5C1EBEA303B5D3E53156B0A9440D5A52F34F1EAF86B86D731494687D95589DC1F137C9804936E4C213A52EA83926C4CE49CC79CEE40C53A971983AA0EB47E58249978A38BBBFA0DAB1A5BFEB4DE1F90665E4F08BA9968B7C75CB1236815C2D1D687B19B79134B45442C3F466D50FA641D7CF8D0825616B3FF73B187067DF5EF1CFD1D0E1FFE347EF59B5FA3B77740C5896F1BECE356264E9E3E879D3B3721DDD1053BD38DB9BBE378F1C51755676E5BD5BE5B386AE3BD837F2F977DD9D66A5C447821E8F5A6D1B5DF8F10F4DA316CF21582CF97A5028A971F1374A704DD2DAE9780C586ABBECB267873E69B067DE2C78E1DC7634F3C8EABD72FC36635B97205C5E919F40F6C819DEAC0F5AB17D0D9D589642A8B5271164F3DFD292498A5A92EB8E062D186FFBDC932B5AF3519E0964D2704DD32E8233BB110746455D33CC1744CB7A33B8DF83E6ED7FCCD6E8DE5B2DA44341BA224F772A5825426ADE2B8E9D4D0FD1D2DB82CE5CA96526557D500A14B867E6E8E2ABB096493DA2362AE1574F1D45ACFADEB5CD33CEC83330941B706F728CF2A041D65ED345036921F0F5AC58CE8387AF4A80A05B493696CD9B219B76EDE5011218C5A21413FF5D453AA50FED8D898CAAA64EFBF62B9023B69236927E194CB38F0D8019C3C79168FEDDF87131F1C47672A0D381ECA968B446727C6A7EEA2336561433EAFA256D8818507A35618D1425998E938373787FDFBF7A3A7271F74B337108D685C5A083A1A7A88921442D051D24608596A1DE8ABCD9A0EBA15E853663C3463A027EE4CA1B727AFE2A949A2268283EFD1B5A1B21FFD3E7F1B376DC2C8D5117477E7904EA754ECF4F51BB7B065EB364C4DDC56EDB79814532E17D199CB01B68DF1DB63C8E772EADAE63C923E235518BBCD209BD9D902B66F7F081D1D9D42D021D6840C59BF080841B7996E17DBE15C2D49076FDD10B6EEE9674A832E9429E5D860E53D1D8EC75AFC3AFBC475746951169E4AB01722895C0F4152054DEB71AC6A67B60955A968577944D4A1B331F5DF26A9A51EF7D62E2A160BBA5D34D53C3985A09B87F5FA9CA95AA96EA16ADD222F2DB46E8C13E3AE50E342D02B042C06C385A063A064B9C5F6404008BA3DF4D44C2985A09B89B6CC25083C00012168591EB5080841CB9A10042282801074441411213184A023A40C1125DE080841C75BFF8BDDBD10B4AC09412022080841474411111243083A42CA1051E28D801074BCF52F16B4AEFBD0E6C5926411AF570484A0D7AB66577F5F6241AF1E3B395310A82B0242D07585735D5C4C087A5DA8516E623D202004BD1EB458DF7B1082AE2F9E72354160D5080841AF1ABA757BA210F4BA55ADDC58BB212004DD6E1A6BBCBC42D08DC758661004422120041D0AA6580D12828E95BAE566A38C80107494B5D31AD984A05B83BBCC2A08DC878010B42C8A5A0484A0654D0802114140083A228A88901842D011528688126F0484A0E3ADFFC5EE5E085AD6842010110484A023A288088921041D21658828F14640083ADEFA170B5A6A71C82720C20808414758392D124D2CE816012FD30A02B5080841CB9A90280EA966279F82882220041D51C5B4502CB1A05B08BE4C2D080411108296F52016B458D0F22988280242D011554C0BC5120BBA85E0CBD4828058D0B2061E848010B4AC0F4120220888051D114544480C21E80829434489370242D0F1D6FF62772F042D6B421088080242D011514484C410828E90324494782320041D6FFD8B052D9984F20988300242D011564E8B44130BBA45C0CBB482402D0242D0B2266A1110829635210844040121E888282242620841474819224ABC1110828EB7FEC5072D3E68F90444180121E8082BA745A28905DD22E0655A41407CD0B206964340087A3984E47D41A049088805DD24A0DB681A21E836529688BABE1110825EDFFA5DCDDD0941AF063539471068000242D00D00B5CD2F2904DDE60A14F1D70F0242D0EB4797F5BA1321E87A2129D71104D6888010F41A015C87A70B41AF43A5CA2DB5270242D0EDA9B7464A2D04DD4874E5DA82C00A1010825E015831192A041D1345CB6D461F0121E8E8EBA8D9120A41371B71994F105802012168591AB5080841CB9A10042282801074441411213184A023A40C1125DE080841C75BFF8BDDBD10B4AC09412022080841474411111243083A42CA1051E28D801074BCF52F16B4941B954F40841110828EB0725A249A58D02D025EA615046A111082963521511C9EE7C9321004A28880107414B5D25A99C4826E2DFE32BB20504540085A168358D06241CBA720A20808414754312D144B2CE816822F530B02410484A0653D88052D16B47C0A22800097612291A84AC2BF4F9E3C89BEBE3E249349F57AF0FD08882C22B40001B1A05B00BA4C29081001632B18220E5AD0B508895D11CF35333838B8F0146F22042D99D4FF5048144713152D532D8E80EBBAB02C4BBD69ACE95A1747D08A16828EE74A8A1D41BBAE2B041DCFB51EB9BBA6E54CE235047DEAD4A9AA8BA3D6051239E145A0A620202E8EA6C02C930802F72250EBDEE0DFB4A0FBFBFB914AA5EE717F88F51CDFD5133B0BBA52A988051DDFF51EA93B3756327FD2DD71E5CA1574777757370983C20A49474A754D13A6AFAFAF25EEE0FF0766F1DC443B7D42440000000049454E44AE426082 WHERE `app_id` = '7'; -UPDATE `fn_app` SET `thumbnail` = 0x89504E470D0A1A0A0000000D49484452000000D4000000BA0806000000D62063320000200049444154785EECBD09B86557552EFAAF7EB7A76FAA49484B8510087C88A04F405194EBA75E9B400286670BA2A2288D82CDA70F7D8A4A7C220AEA67C305858708DE4B083DF810BC72318020810409E92A55956A4FB3FBD5BEEF1F63CEB5D739D59D537572A1A8BDA152A7CE5EED9CF39F638C7F74CE3DBDB4B8F3F3FF811FFFBEFF829513C7D06CB5E1FB3E5CCF85E33880E3821F47FE7B864FC1EF0A80E714E6EF930EE7410E8F2AAF9703D03B9CE6630E2ECF39CDBF375C542E55BD8B5EFBE4DF8CEF79DAEF367C212F89020E9CA240C177359FCDE32343C063CD17F67B7B39BD921D87420F2C2FB2F1DF85DEF1A43738DD33DB6B57E7AD9C92CDE377C6B1DA7487936EB8F12DCEB6444E9E818D173CCBB2292F7FFA79AC8EAE194CF3881B8677D38356AF371EEB332C49CE7D9E23CF7324698A41B78B99F979BCF1D6F7C379CB7B3E54DCFC3DDF8985F979F87E504EEA498F76C6C1E402E0EA1883A58A2F79B41C285CC0D9CA1C54D7D369578D056D15A4E313E5B79B5168174FA1CFC935BA1108A7B859E5794F1A6CB99D9EA3D7B1DB838E0701377E86CD13B4711A373C49B9E82D90CCF056DE67D337FA3E06C4FA30274176FCEB9376C7F1B1278FC0997E53592595157BFA055F7DAA535F979BB16CE4A7FD9CFC5E1B3635AE3347AF51E4BABF572779E3BA38F926F6EAD5CD683C9AD5B9DEB8BFA5498263C78FEBB6B7B8B4044F245175719A0739D5BCE705721770B93065519E8C12EE36B29A0A2EB6CAE23FC3C08F5FB67253F9F16439566CDA72456228A637EDF666D0CA8B5706D12EFA0DB2CB82720C8EF1E2D573C7CB48BF51A0E914E86DCC1114D6763E3701B33A6AAEA24F267EC3F166FCCADFCB75CD4B1A0969015BCEDC6691B8492E8FAFBF518BB08F2C97DF349D1B1661F95D058425902B1B891DE60DC276B3ACB5FFAEAE3BBD6EC175E39891CD0BC01DCBE8129695B554EE21552C9A35325E4DE39F721470ED82299FD1FEB05140D899D5CBD9F9AE6A5AFA9C945ACE54AB55345A2DB3A3E6708C18D12562102950AF28665590999D39876B1E9067D985369612279DC2A3721D345D5CE39DC96285DF54D580EA6EAF80E2F51DE406D4560D5395CC689FE3AB57944D1DB8F299E4550BE48E53AA9F7965A72CF12C182B64B239979C1059BFE6214F92BEF2023972D7198F8D2C14034B0B227BBEAEA4B1E82C17848E27D715C78BEF2CA7CA2662AF67E4A339DD2CCB8AB092132083C58FEC9F55505915224791BB70F872B9991757D7825D1376F3B06251B732572583D962EC8621671970D81D43E75A4153AE31C73CBF018FD91EE5AEB2F0AD3A61B402D9C8364B64B34116E06AE4F5AD4A643488CAB956652A6472ED809432A0326E7A13BB7D8CB5117DF431A60D5696772DD31890C1752A03E71482613D2137AFC75DC26C5755C0D98991AF8CC8557967752AB3C70BF0EDCF050ADECF8A685918768556179CDE9B67C9E35981630448090B8E2E179A6E3BE580D839D36BF355CDC66016A7DE4996AB192057E16D77FA522018358227E4BC391165B53C1D713B3632017208CF715118DD838FE81A1B53BEAE80C2829B6AA25C56E6515F722C747524E4C6E6FD0BCE0D016B9E99EF99E766ACB8C39700B68BA2B299C89818A94BF594FF20E064F2B889F26FDAD279B938794C2E1B962C0C039F0A302ADB2987896BAAAA3DE8F231D2986BCECCA7DE5667D3BCA10EAEA842150DA5041C377F6E2C7A6FAB74CBEB98B9D561B79B813149E4BB8D8243EEAA3B54E54A7A217942234FE4D6D62E3660CE650C5CC50F6FB1B4BC2CCFC489711D57777B591C66F79249D1ABE80E6454D2D25E2AC0DDDC4A0BB129CCA4C800510C0A70284908512B8D8C583733CAC7E20BC882E3A4C925CDD6E0EAC4E9566157AE284A669B303B988C99EEB09C04873BACD924F4A9F577166DE3E56A67D10CACAC33A3725892C548022E275964A57A3C5E14027DB3802D90EDCEE6968BDB4CB0A8C26630A9425BE928A854E9CD1D448129FBBF9D735D742221F59D38AAE5062EE3A67326E3CE0B98F7D1D560D562057C5E18007359984D54A7620C1601B6AC19AB762921534A649138F284061EFA1D37123E8302D0AA51E3852D6322F3C17750D9A66ADE78531C6B3155E0AB742D3721036E59315595ACA2C7EADEA163A82A76B9A31979A06B4D8580193F0B77B3F1C90E68E6436F99EB3870C4EDD25C5EDEA57BB1058E990C824B0F1A4B149937EE88164C66EB1C6B0E63C1A833A72B46079E2A8B8A7AAB2F5527888B40F6598256D7C058FEDA856044BA9500BAC8CCC0162E0A379745A6D363D8492BE68D8A615508B98F4834A794C0BA1F991D91DF1989C231B0EA4C55CCDBEFAD2A268F6C8063D5205543CDCE6671CBF1330B5D1680CCB6B56155AA7063C9ADEA52EEE3F2F4A5CD6A87D2EA1EBAC875B1C87398CD49259A8262BC0AAD0E61A598D98D453C5875DCA895E57554BD14E96DE652CD3ABBB48D5093B569AD4BFDCEC8D9B146CB71311A8A5C810BD42E4AAB1594FBA555E10D90658D5A8DC1805C34B75C80AD5B8C5D07565BB4768E8E8DCA435D29623EF01955D0985D4E351ACE8F0802FD6785B5DDC8565BCDC9D9B5BCAC9091DD49675E416476126337E8A4F00616DD3A210A26AB37A80E248BD4EAF7664B14C165C0A9AAED4683D40AB6522018C54D777DBDBED5CFEDE053B591E7B452C8EEBE46453588DEA0E7DAE9E522A626A16FCA677695FBD0FF18609B0564EC00233BC49C143B83EF2FE48C59640226AACEAA2A8DC7C71AFAFA80B2205D02DA4C90A82646571715D8A845F21C2ABB793DD9F98C9D2292DFEE4DB2619B09368B52664200C67733924926D7ECAAA50D930B7865B194F36EEC0FD175784B638B983953C4DADF71F8AD9AA99A05DF518928AABBFACEDCCD752757A95902CEBC84FCBA94F04611E45C884260E6592E6ED438B9A7B9973C175553BB4ECCDA9231196FEC6ACFE9A64EC96CC75CEC70BB29D84DDF6C0AD4ACF4381D4B8EA9BCBF51AB4BCD4A6CF91CCEF2D2922A09B2637397D79B964B586753553EB3B0ED80954C8CB137748171F00C7569178CD9A245BA99C5C687530DCEA87266E154E80C2395B95B9AC56BC7B9E203B2FAEFF88915783265B250C6D69E591D6A8314542FC73BD2D8C8AF4851AB459B034B49CC7192C566776A731F4192AA8432C566A797A56240628D58BBB1735794C915DD4EA9762B61D426B46018AB4CD61857B5D24802A3AA1B75C39877469E55E653006925BD2C302B5F746790454755D9A8F7327AE317DF4088283E75A7579553B5108E8BB503558B305B7F7933B3D08D5E6CD5456B7AD879B29A8D7D6681A4D100644AAC58B05A8811944A5818895B6A0D5661E2B3885161806F54C90A4123A0339810759A73A33B94D115F446E59AB18615CF5B16093516D076B04BEAB7A20EEA02B56A8D0A71D17F2B14A75571C64C94D9552D1B6740A90BC74A4263A3559EC3DA0486461BEFDAA52D628DEBCAAE55B25E9654D8E8D390612807BF62CBC9EFEDA66217D3980E57D5B4EAC8353ABEEA7C627FD256E0DFE562305243258A9584461DB34A921D4F0338B5BFCC6455774C737CA913995D5AD51E63DB6C58F77631997B8BC418AB66BA53577C86E5A6A9A030F6F9D84A740C68ECE2B2EF634995AA3D65CC04A3E0A80650B5B12B1ACBF83EF63D2AB47405F4E5B89412C7A8B6E5B88C4D0BCB25A956C7CDD8A8A166416D589F566CD8313412BFAACECAC855D69C153432A3E61975F88C30595A5EB2E6F178C84B95D8EE01D5E9B0ABC1C804CB22D92D7793536E6C5559E3DD8899CA8EA033375E48251961D5D9722D1891677525738E799F928EAE325B954DCC2CEC0A1BB7296AC31EAB3BD898391AB33F278F87591F5533A2BC8CFDA57DB35205355AFA788F35DB6DF93E7602369D5919336B43549F79FC8255F0D8BB561ECB4ADEF1545A4363E341E5F795E7A9CE6FB94E2AD2A27C37BBDA2B268951574B3BB4727EB97F6CE0D9C607A89933B6E76D948A594D1BD76E098C8DAE13BDAF214C2A4EFD524894CBB0B2D99807ABDE67C32059E96FEC579150278DE2E65F54C673CCE49CF5ACD31E501DC773BFCA4E9FB971119FD3D577E2C576E21A677BF8EDDCE3A463B773F2E91E6427AEB18D973CEBEDCE7CC0992337363EC74980DA7CE90D9B4851A05EAF8F6DA953EF6715CEE76C2FAD3B694516E809671D80CD72672BF7F9DF70CC969F7B5B2F799210DAF13739DB736FF87EB3BCDDCE7C6DE1C9AD12B28543CF78C8B63782530F02C134180C54B5B68CF5496271FC24EA87AAAC60AB559C6ABF6630E0FCFCBC04059EFAB3C15AD8E290587AB572B82152CE7E812D1F78F64BEDC411DB7A9C6D1D2C4FB7FD33B6F85267BBF086EF4F31C7673B7F8B8F615FB2E26FDECE999B444545E5DCD2E89DFA255CD7C5F163C725587CC33668F43AEB07B710729697972C5B59D2B8EAC9DE486BF3627996636E7EEE0C12EADCDF7F72E66404BE16478012EAC4F113703C1B1D626065E9DA0D0F6D58BE4D41D26574A4F58B0B45C8583723A14AFAFC6B710426CF3419811D1C0101D4891326826723356159CA5200528B585A322C9F848118B5C246F64A0C93096D290A644581C5B939F5354C3E9311B8084680803A7EE2383CC72B43A2CAC015719758379D465E1A40A9822E6E14F133D9205813FCA28159E267A10D35915017C14A9ABCA20A1EC7C5F1E347E1BA9EC693DA103D6372599965C39204501A1E621CB512CA485C8DA3AEC5C812275981F9B909A0266BEDE219013AEC8F1F3DA181C665348A89EDABB80F4D800B9CC5C5A5C2C6E7D9E0CA32245EA83E1BBEE320CB332C2E2E9E81E5BB78067AF2A617C708B8AE83A364F94CEA5219425632E38C6ED1004C09F05E5A5AB4D183265F681C96AFA1563630D0D850F30BC84DDCD9C531A493B7BC984780B4F9B163AAF295AE241BE95E09FD2A333DA8F29D75C08CB3ADC8722C2C2E4C24D459076C72C0D7CB0828A08E817F1BC25C4D229BD9605FD4A0486CA8ADBE3C69F3858509A0B63A5E93E32EFC11D80C284555054D26C6D0464C56006512CD84DAA80C4435FB7802A80B7F854CDE605B236001E5305FAE3CD3B0DE265BB72ABA9CC5059212E64893E4558DF6AED61BCA8A1C8B1309B5AD09991C7C618FC0661BAA2A6FAA95B76C828CB3B8B45868E5204D1F974F19D664CB84E9AFF33CC5C2C2D2B66DA824491004C1853DB293A7BF28476083CA2799E0CA9D9FAA5C9D687F8B4B0B5AA6C326E7D94C4782AAEABCA2E3F71C543E82E9CA2BAFC4273FF9494C4F4F4BB4BA35F02ECA199ABCF40535025CAB478F1D05DDBAE256DA206C58F4C7D5C24C9A030C67619180D2FFD90A3A9A056A72A3A560827A8CD33CC7D23655BE071F7C10BD5E0FFCFB75AF7B1DFEE66FFE4606B4D56A210CC3B35409BDA0C67EF2B05F872320803A4ADA9CF5318CAFC956A3328519B56E852924B3B0B0A8E91B95CA36656688294925158B88C0BCC0D2D2F61CBB1650D5B17EDFFBDE873FF9933FC1473FFA51CCCCCCA0D168C0F3BCAFC3E998BCD2853E0202A82347357DC3A6CADB3A8B5A59A2CCDF63ED0C91507AE4B8F64359624B93E5E5FFAC8C9366199696B667439D0A507690A90EBEF6B5AFC51BDEF006ACACAC606A6A0AB55A6D22B52EF455F875F4FC04D4912347C4B15B5606A9D643B1C54F6C00C4E22223258C2BEAA44225634E83C7E7F9CE02AA3AEE9FF9CC67F0C77FFCC7F8C77FFC479158CD667342647C1D2DCC0BF5552CA03C4930B4F550F4C7AA03579DBD059CC585C571E9D333E69E17C8B27C4725D4E906F94D6F7A9380EBCB5FFEF284C8B85057E2D7C9738F01753A93C4960430B56FC58632CC453509F15429F0D90EAB7C671B73AA8B0416890CA6944C888CB38DD8E4FB9D1E812AA054228D2BA09C5C7FA5A00D455262DCD9C8DA4CA626D786E763B4F9D2E2CED950DB79F9F7BEF7BDC2127EEC631F9B1019DB19B8C9B1E73502252921A17CA61AB08984508AC148285396CC595C5830B5082B4E5D5B00D0A46F48652216B42FB06D966F7D7D1DBFFAABBF8A9FF8899F10BBE87C3FC3E15018C23FFDD33F05AFDD6EB72744C6F90EEAE4FCD38E000175F8C85128093DAEA32E854DCB824F0A2A71DD2ECC2F14B663810DA36572A16B3B2254EA4667F4436D5342F131B8F0D7D6D6F084273C013FF5533F851FF9911FD99129BCFDF6DB0558EF78C73B441D9C10193B32AC938B5446A064F91C4F8BD8DBBE54A60984F4EB326485948A5E585828589ED6F62B522DD1D6E81EF7F7E1F7A4DFB7EB87AACE4E1CC7E8F7FBE8743AF8AEEFFA2E3CFFF9CFC7F77EEFF7EEC804BEF18D6F14C935213276643827173123A012EA08BC321FCA94D02BDD4FA6F103FB1AD0B93BBF302FB17C6575F7B2B6357FC7BAE55698012425969797B71DCBB77976482F8E4623011741F6AC673D4BC0F5CDDFFCCDE73D91F7DF7FBF008B009B1019E73D9C17FD05045087092855F1040DB6D6B9947C36F9B9D248A020A0E8D8B57033450C4B8A4FED2A5B7E99B17C3B01A8EA2C115CB48BBADDAEF89DA80EBEE0052FC0BE7DFBCE7B326FBBED3601D79D77DE39B1B3CE7B342FCE0B28A00EC3F518CD67EA1C579B9E5B6794A94B2F36D486FCA7338CDB4E49A8D3DD828065D95BAA84AC5D41605172B1D2D2F97C1EF7B8C709607DDF3F9FCB4CCEBD0847C002AA1A1A570DCDDB8C9D4D801AD7193F55A5E7871B50D5F94AD354C04542E3DA6BAF153283003B97CF631EF318B9D60450E7327A17F7391B25D438A2C8768B298BC49A61521BAA02339B50685A1397A3493196EF900DB5DD2962CC1FED2D82EB694F7B9A00EB861B6ED8F2652680DAF2504D0EDC3402C2F21D3E0CF2E6AE89D72BB5BC0DA692A9694996CF064F48C73CE9FCA757355FA829566819B19DB6A1B633835409092A062BF2F3810F7C40D8C2B37D26803ADB084DBE3FDD0810500F1D3E0CDFD3AA47FCA3E55A6C87FA8A2EC74AB2F373F385E39AAEEBA69525F976D7F4A294EE0206598CE55BDE75FE2CDF76A66F332378E38D378A847AD2939EB4E5CB4C00B5E5A19A1C780A09454091365735AF0A20DB71D20820D2E673F3F322C1CA1622A63BBAE648992EF2A6172A6B4AEC5ADE75DEB4F95666ADEAB37AE6339F29E4C4F77CCFF76CE5D4938E9900EA9C866D7212A51125D44364F9C691E6D2E4DB46974B9364D1E734C970CE48289333A5CDA96D6B4A9360A8DDE10B1459F1B0AA7C96886054C5E31FFF7821227EF4477FF4BC27F6FAEBAF97ACE1092971DE4379D15D406CA8870E4B2FE56A6D73DB8BB8B48B6C07FAF9F939D3A2BCDA70B5DA7C6A1C8A4E1B6AD7AE9D955055AA9CF6D90B5FF842011263F4CEF7C39024FAA1EEBDF75EA96531F94C4660BB23A012EA2193513E6EAFB8B1EFA6F93D35BD79A3F219A125F7DBD80567FC08CCD8DDBD0380AA3A735957E2C77EECC7C42EBAEAAAABB6FBBE271D7FD75D774954FA5BDEF216445124F17DBCC7E43319817319818D80B228297B6ED824F812330AA83232C2D49628E9BD71854C1EC40E86E72AA10822DA4554BD187644728176D1377DD3379DCB7B9E74CEEB5FFF7AC99DA2579BA9F49448DB6936BC230F31B9C8D7DD081050871E3A04DFF52B92C6C8A79313A2484ACC692D976A9D162BA6B440A6F08434C3E8D8DDB56BF7B64909DA44A4BB9FF18C678824FABEEFFBBE1D19F88F7CE4232090DEFFFEF74B662F53E72776D28E0CEDE422660454421D82EBF95A90E5A44EC79A0B5F96B4544019E05892DD1CC0C29765166F016479BA6D40114CB7DC720B9EF7BCE7EDC824B1A41325D15FFEE55F822406D336A8DA4DA4D18E0CEFE4229B4660ACF2B18C18893C962C27AC5C0D92E03F58D652288B02CEDCECAC78722D772E91E752C945E2D1E5F2744931158475F9B66B439DA9EAD17666EF6D6F7B9B5448BAE38E3B4A69342998B99D119C1C7B2E236001A575F98820070E336D4D866E353656F2A166E7660B418CF89F36B48A929399A6CB22976A4365D8BD7B7B2ADFF900EA739FFB9CA8746F7DEB5B459DA3349A94743E97653139E75C47406DA887A42E1F658CB604D50AB2A76A8DEBCCCDCE11492A892AB5912A752F8D3E4895AFC0EEDDDBA3CDB70B28DA6954E958AB8F7D79489F4F0886735D0E93F3CE77042C29E1B13BB5D846E33EBB6266548909CAA3B9B9398BA68D7CB91CB891C6E0627FB824D4073FF841A1BBFFE99FFE6942309CEF2A989CBF632320803A7448FD50A74AC1B04CBA21F2C68032476F3867D305E887DAB3832A1FA517553A120CFC4CCA84EDD83A985C688746A00AA853B0E4E3A443E3897266E794E5E327CF19BBB4F949CC650AA5CD77EFD9B32DDAFC542A1F0B593282E14B5FFAD2A490E50E4DFCE4320FCF081050070F1D8427B4B9FD54E324941257528F2ADFEC5C2111E504942125B4E19A2502359D838618FB43EDDEBD3D401D387040B2653FFDE94F8B4A3729B5FCF04CFCE4AA0FCF08A8843A084F240DFDB50E0AD3754368F2D22F655C4CB3A4CD0D4DAE94B9419C624ABE22D9C71FB334C79E3DDB63F928D5D80080C09AD4D07B78267D72D5876F0454421D82EF38C88532B7F52E1514E29732E6125972676666C6C0C85549845CB808FDD9564457DE82E91B7BB629A1E4BC2C9BB4AB79F8E67C72E5877104045007A9F2B1D2256512F1A17950B9C919944822892A2AE0CCCECC14D299CDFAA04C74842A85D681A53A22FD507BB669433D8CEFBAE54B3376907FBE5A1FC6164E3E17E608584049108169AAA6ED9E683A99E211520C568590232A9F8D4A1F47A76FC84CB4EC0625CD85062802E9A94F7DAAFCF96A808A607AE52B5F2901BB93CF8537021B2554191751E1C40D1B615ECD999961E8D146979388AE0D4E2B855496A5D8B367EFB658BEAFF6103228F755AF7A95E4587DB53E4C21B9E4924BBE5AB79FDCF73C4680803A70F0007C69B866E28D4EBADE985017092524A021CF55748D0F50FFAEB1A1B21C7BF66E8FE53B8F77D9915309A85FFBB55FC3CFFDDCCFEDC8F5CEE52213409DCBA87D6D9C2312EAC001B8BED2E6A525645AD6881955898170A6A767D81AB40C8AB0A5976D1A3CC16439F63CCDB067EF8527A12680FADA589C17E25388843A7010BEEF49071A52E64EE16A2A8769996B5AAD29B0A6676695AB28533794171400566841AA80AC7AB4F70223252612EA425CC65F3BCF5C02CAD3740D238FA0E1E2CAECF1183675276A84362F930889205B0CDD50E6E637289C5C3276F74E24D4B6677BA2F26D7BC8BE664E50401D904889A2C86D02869A534C7B6293003AA78C1AE7CC4C4F6B6D734B9797E987E39C0F8B4AB27C1722A07EEFF77E6F47AA279DEB2C4F0075AE23F7D53FCF028A7F0B80ACA667D2376C1491CDD870A68D6377DCD3FA34255A2463F7C20314A7846A1FFF7CB53E1386EFAB35F2E77FDFB184DAD4B4BAAC19C17B54583EAA7C72DB0D3EA8CA83544EBC1025D4F90FE9E40A17F3085401A5B019B77EDA80296A7D24F76666A64D5D3E1BC36728741B7564CB52504265192EB9E4C262F92EE6C53079F7F31F0101D4830FC2632BA452E88CB37645161935502228A667A6B58BAE204CBB5C0B0A73F218EA93925C7987C1B113409DFF144DAE70218D8002EA003CDF2B8BB268A85EAEA14736E6C8026B7A6AA69088D93229CABE2EABB9B06EB3117404569EE292BD975E50911217D2E44D9EF56B6F0408A8FD071E44C0BA2A9558BE32784FDAE9520019EA6E6A8A2C9FAA79A5316573E74D6B1B294AC1BA7C792E21342C9F3CF94C46E0621801028A49B26C093AD6ED3412D606C8B29BBBD63AA7CA373D25E249FE2123B4B1F08435BC6CB4F9045017C3329ABCA31D010B28CFD304C331A167ED284B55A85072A6E987DAF4D1F8BD6A91731B1C4B1B6A22A126CBEDE2190101D47E92129B68F38D6CB925CAE14C4D4F97DD6B360E93CD9B1F2390911213405D3C8B69F2A6DA1F6AFF830FC217096534384B406CAA0A2684DE14553E419BB603B53C9F6D0B6AC36BA9FAD176BAE4D289849A2CB48B67042CA0D8C150B3741D093F520A7D5C53427806DA526D91500CEDD3A358B399074A1D0A5BE74584548E3CA7CA7799FC3DF94C46E062180101D4FEFDF07C966266F89125F04844D89AE686AF2051313535A5B5586CEB6ADB898D5F96317FEAD1626DF3CB2EBD44D8BEC967320217C3089480623B1B438F4B628649DDB0B0D2822D2E9CA9765BA1240D032A8986B6E9AE9CA8259028991E71E96512D337F94C46E06218011667B9FFFEFB959430F45D19102B6E25D350C3B4CF1509750AC2E29465671929F188CB1E21214893CF64042E861120A01E78E0810D55BB6C5B1B2B686C6ABC08A6A9F694359FAA244619415BB2E7399016192E7BC4045017C3429ABCA38E800594CB9A124242D84C5C6B37598498CCC1D286A2C2577631B4C528F4209B8D98A5291E71D965130935596D17CD0808A0EEBFCFD494303D0C3762C86A824A51B445424932AF90E69A0EAF69F052FD889072F542EC1878F9045017CD629ABCA89150F73F202C9F8D2832A483E1C0551089978AD479BBDD92429792239F1B049A2686EC6028B1E6242C18402B36D4E51309B5C32B8D1B976DDEA559A12705AFECF01DCFED72F6D9D87C9CF5EA9324D9522BD6B22C1D2065B999C1CC9DFF6BF95DED08B1C1DFFDF7DD2FCFABA10EB64594712FC98144892B4CB9D36AB7355242C83C738A9D50D1FC6C436BED603801D4B92DC6D39DC5C5C6C96287467E86C3A114C5A436F0B5002C3AF3C33094C5BFB2B222CF75DD75D7E10FFEE00F70CD35D768A074A5325645FF91949F3C2FA49138892C5EE31DEF780758928080E4EFD91F5916AB59733C86D7E4DF5F8DBEC9BC27DF91CFC50DA3D7EB61FFFE07E0BABE3E53912337DD086DEA86D5E4241ABDDDA284B2D3AD51E565E73571EE8EBB6FB0D0E5E5974F24D44E42CAEEDE333333B2B038999400FC990B6EA723FBAB8BB47A6D2B2DECF3D0FFC267B18BFDF8F1E3D26CEFC52F7E319EFDAC6763B5B386C1688424CF1150C3C90B78ECD022A9400620523A2B07034BE9BB745D078B8B4B3872E488F4057BF7BBDF2D40E266C2C5CB7BF24F55624B0964B98CFA3EC7B51D540A5800EED49C5401CD6762B561D2E65246AC943B0630122B6BA3255452A984D29F37763034A2ACFA4BB1A12680DAA9B9D31136128A9D490683814803DAB0A297BBAED9D977F296952E47726F8DA2AEBA42AABB346B7110E03FF8833F8857BCE215D24185AD5A9BF506B224D1C5EF3AC898802A5D331D30158FE02AD82402018ACC41E1336FC8451C0FD06C3644EDFBC4273E8157BFFAD5B8EBAEBB303737578283F7B740AAAA8B16586558DC4E0E8B89CFE306C2B1900A47AE271A8302CA37771B03A50C2257AFAE02BCDD6E6FF4436D0696F937FFCAD314974D00B5A3D3A880F251AF3791930C32F694767BD08FECCE3BB18AC6F35EEEEEBC3FAFCF05A300A6AA494017387AF4A8A877BFF99BBF896FF8866FC0DADA5AD9492519250899C59AA7929C9AC145E67A628B8B2D51003EEBD5887546FE0000200049444154F1D1798091525A2092616C3916161644F57BDBDBDE863FFBB33FC3EAEAAA48412BA1B4E61DEFA1CF68ED2E01FF4E8CC7E69934E3234DDA8B5C24749AC69B00654FAA00C3EC51C292B75B04944996A700630F9C317F6EA2006980E5C89202975F31A1CD7712510228D747A3D9161BD561B92A23B9AC9AB353B6C4E6BD92EC2D17691227A292D16E20348E1E3D22ED595FF8C217E2E69B6F166942A9C4E790E393047E1848281A055C91A5F0E0C34F3DF86E80300A10E7297A598AD84DE1FA05DCA40092142EA58F1F0840F8EE34FA67676771EFBDF7E2965B6EC17BDFFB5E9182B423799F24C91004919C279BBAB1C5AAB4CD69EA749DD334598D81EF1AC70992B48FFBEF7F40361C35F3B843E81C59C58EBF23AD277B85B07C6516A1B5A04C7B0EDBB283417DB92B8EDD2B26B4F9394DD4E94EB212AAD16896C6B835CAC7A5DD76E6969C6602822164BE1FC80E3C1C0E40FB2D4D33914083411F4F7FFAB7E1977EE99770F5D5578B04A11D514A07A4C41C022742175DA01E6026F1E1AFA4F096E77024EDE0E3777D092710E1E9575E8E7D7E03EB4907B1DB43800632378047C3DE100F0414AF4F005342BEFFFDEFC76B5FFB5A01D8AE5DBB50ABD531180C45ED0C021203C69D53212DF45AE73F4656CDE69C104054C1B32CC1FD0F58964FC3F9847430F693565ED1D63664C59D56B329391B5201536A9C33445DB441AD9259261B1632E8575C71C584363FFFB92BAF50059465C2AA8CD70EDEAA541FB970ADA4A12420E1D0E97424D7EDC52FFE79DC78E3B3D1EFF74B6A5CED3AA5F63D96E4662C67E0234C0A78690ED78B306884F8D4FA117CEC812FE18B711FEB61886FE807F8F6E54BF0C44B2FC57C9263351F61E8E6F073577C9B7C0E4A2152E9042EEF333F3F2FCFF38637BC017FF5577F85999959349B2DB31128314100D9B1B264CA4E4871553115B00AA821B22C56DA5C120C6DBCAB6E758A0FD32BCA545C5640557C1F9A1B6F4E35B524E4DF126D9EE28ACB2780DAC9457E3A40EDC402399354E4A2241170E79D778A7478D6B39E859FFFF99FC7C2C23C56574F88BAC3DF5332546D39A1307C52CB393C87EA5D1307463D7CF4D003F8E49103E8851E7C2744DB6FE248BC0AC78DF1244CE1DBF75E8DC7ED5D86D3EBE1706F0DB5A826EA1E0145559352CA326C5431F9DD673FFB59BCE635B7E0A31FFD18F6ED7BA4808852D5D2F0F6B9766AAC4E07A8FBEEBB4F25B4E5EE343A5671622A2E1BA8C169B65AA2DF9D5A646E6434187A3491503B0927CBF2F9A0CAC7052385E78D3AB4D53B9DCA5F55DDB9377F6FA5D38913278474F88DDFF80D3CE6B18F9505435F53BD51431AC75A0E9FBBB610242E5CCF455CE408696F799E48A17F3FFA103E70F7177028F2E00653981A3A68041156F3186114224E47406F04AF15E1C9A18F9B97AF803B55C730CB301CC508FD40DEDB0F3CD18CD46E544951AFD7E17B01DEFCE6BF153590609A9F5F109595448590D615FF95A85EA7708A6F1570670294D850658D4A05CC86845DF3A5D322A04AF3AA52F968437F6B3D822F3401D45697F9D68EB34C56BDDE281D99DB019435A2AD4A66D539EAFFD63949954AA960AAEDA951AF023CFFF93F899FFCC99F94E38E1E3E8236EDB8644473190378C80A0FAE13C0C96334C318712F46CD6FC19B8D70F7EA51BCF7DEFDF8F75E1FB5B00EDF70C51225600B3F8A5AC458505DE889E320F21CDC74D975781AEA088218FBDD554441034E3F409417A815195216E6F77C24EE08499660F7AE3DB8FBEEBB8562FFF8C73F26E33437B780D1281642876024BD6D9951BB9958EADDAA87679B110B28CB28523A93E5A384B2B47995D8A9FAA0ECEF0550B6DBBB584C8535B34C1295413C8DAE89843ADB946CFFFB31A09AA596B05540F15CAB265987A7750A134454A3AAFE1CAA5704DA939FFC64FCFAAFFF9AA851B49568B3B4A7A7D0EDF71184E39D98E401B3545324F2620BFE2C563A237C60E52BF8E8EA01ACE73E1A611B7E7A7A1ADB3E239F934C623E1CA1480678FC6597E0197BAEC0158C94180CD0C913148D50D8C034F34002DE0769EB048EEB95214BEF7AD7BB445A91795B5A5A1689C6F72253483B90AAA2DD38AA4EE0AD48A92AA008208E5F1550B9896DD58E9FA766419C46AB59B8DAC3B09449AA03AA934EC4A82126D26C424A6C1F32673EE37C0065551C2E162E2AEED054936C2F616BF0532A91F6667FE497BEF4A5B8E1861B84DD3B72E4B050E262E41739BC40A9F0280851244324F1104EE061C96BC1CB237C68B4820F1DF80AEEEEAF23A9B7303F02D8D72F73B42EDDE64F7581F23B2EF0200871BC18A09776716D1AE1197BAEC6636666D0AEE7E0FA2AD85B3CA821E1E2CD4768841192349377A224A5EF8A5DD95FFFFA37E0EFFFFEED0220122BD6D6B380DA1C05B295793B1DA0EEBDEF3E040C8F121DCFD0E3F2A3954BBAF1F02380521B4ABF6497364B4D0A8BC1FA12269E2FCD525C79C59513966F2BB3B3C5632CA06843558DFF33EDA876D7B7C78B8A21BE53F511F15C52CC741833CC87BBEDF77FFFF7E3975FF1CB4234F4BA3D1309A040A4EF2B743DD140281B92FE482495DFAA2329323C38E8E2FF7BE8417CECE07D4866DA08FD69B44F0051E8A0EB0FE0E31425B6CCC3559F557C4F648FC300711AC3190D91141EAE9B69E199972CE2FAF6A5687652ACC47D24AD3AE0A718F57B127BC1E726A8089C999969341A2D7CFCE3FF823FFAA33FC2A73EF5292C2D2EC20F0251FD6CECA1B5A7ACC4B7CFB2D9EEAA8EA3B561AB12EAFEFBEE15D552A8712717465C8B1919CC983A1322841A8D86115ECA53A8B145A64F0B4AE8CEA3A7D218BC6202A82D42656B8759962F8A6AA57A7626956FE3A2D048822C539A97F39D2629A25A0D491C4B7191FFE3294FC1CFBDE845F8CEEF783A3AAB1D74BA3D38D28D2F35C6BF07BF70D077C8B6D5E0F663A1C683B089434181CFEF7F00FFFAD0FDF822522C3567D1E89210C891852E620935A224392DAB75D220C89A940D80AAA40BD43CF17FEDCE023C6579198F5DDC856BE7E6B1DA3B8C6192A2E135308833F89E83A0C6087517C37E2CB17553D3D3C892147FF796BFC3EFBFE60F508F22B49B6D0CC91C86A16CFC127D62C80B4B8957E305376F5C166C3C86365A9E27B8F75EDA501A9FB881A6B79A9DED154591D46C36AD95B4013CA2231AE795851555872BAF9C48A8AD41656B476D07505625B16C20279DF436A5117D841159B53841B7DB11F5EF177FF117F1DCE73E5776EC13EB6B4851A0E6F95A6B2467948283241EC0F155151B7487C2CCF98D1ABEB8DAC147EEFB4F7CA1DB41529B42CD8D508B33785E86C4D56E96C2008AF3726B5E55351DCC02872B51DB419C034180F53047DA5BC3522BC47FDD7B35BEB3B18461D1476668E9A13CB40337056A913AA563466C381E76EDDA8BFF7CE05EFCD2CB5F8E2F7DF14E91647409D8F8444B5658E2C6AACA9B8155050CCFA1B46368159DCC04946C1F65122E69730D26D7DF99A008026A2CF2CE3C3613406D0D24DB396A3B80B20B41A31D3474270CE9CB89E567AA4324199EFAD4A7E015AF78A5443AF418DC4A86CDD36976E204A11B4ADC5D910E10652952A7402B68A170EBD8EF25B8FD8183F897FD07B0520F506BB9888631BCD4C3C8CF9038199C82CC9F3A79951419172B39DBBBF33973F01AD29156D4C5DC033A7981C8CD510C133406191EBB7B0F9EB9F70AEC0D7D74B00E2F8DE1BA215CB78538D5F796205EB1F372C0F7B1343B8337BDE9CDF89BBFF92B91CE54A3E9141E0CE8E3D22891AA5DC9F54C9BABAA129E4AE5BBF7DE7BE0F9C1062B717318977D6F9150E52058F681898522CE4BA8093A27803ADB72D9FEF76703945541EC952D6B27E090C59C49784CBF3F10839DE91574D2727765F401B21C7E1461E06670E20C4DF12501A95B43580CE0A743E44B33C856733C786C0DB71EBA0BF78D0618B466C45E084603F84E0D8E5B1310B945A68D264C16378348B7C2A0C9F34B9724DA51804740E50E1237452492CA43BFE1A1EB0CE1C519D224C192EFE329CB8FC0B72F5F8A4BB20C27D656D069D724AA5D523D68E3C7B924F7D5C208C56084BDBB77E1BE071FC05FFCC55FE09DEF7CA7345A6FB7A725AADE4A24329D246F345E8F405542C16A00F66F4B9BDF73CFBDA205D877305D024C0084BE9842C781D36C305262CCE4D9A601C2FA996040AD27CB866B09AEBCF2AA0929B17DDC9CF68CCD80AADA4F7662ED645B105195B1B9535C309DCE3A6EB8E187F0F297BF4C7A2093882098C87E31D8B93F1C82D9135CC06DA786B448903B23245108379C42B793E2830F7E059F583F84AE1BA31ED651141ED2C2419D0918698151C1C0DD0CB9E3C215D78AF1376D51DDDBB037CB8B98A20B0C34CD1464431F883D475457FE6E341C201CA5784C6B06DFB27B2F9EB867378AEE10703AC84719FA8E87B8E1C01B9070A3CFCC479AC4989A6E616A6A1A1FFEF08725E0F68B5FFCA2843051AD4D930CB57A2492DCC6275627C76E605552C2AA7C3415E957AB24469953E96BD3B2114EB35997180A8D491A871D511CCB4E64727E5DA790C8DFABAE9AD8503B8827930FC5CC55252536335255305940514DE12ECB4571D55557E1577EE557F0F4A77F2B8E1F3F866EB7276A8C951A8C99E344FA9E2746F6281BCA829A2E9A180575BCED2B5FC01F7FEEE3585F98C6D376EFC3625CA01B7735D1D40FA5F4B05A0A5C21A6FCC8764174BA0113B3A81052C4C90A649E033770908E62B8998B46D0445E0BF0C9635FC1A19543B8F9D26BF1738F7B1A16933E9CE10899EF23F532385E803849911640548B301AF491982004121E6F7CE31B45153C78F0101EFDE847E3A1871E12D690E0B1898D9B41B51150F7C073033DC41DD75856E3C9A8D26693711A8D7A211CBA93C3B53DA25CE397A2DD29F52534BD23276D3E91503B89A7B302AA4AF11224FC43072681F7333FF333F8E99FFE69F9796D6D55D41A1EAFA9061A15C1E3EB2117D91079E82268D51022C2C113095E79FB87706BF72022B785C5A286304971D59E655C3E370367D4C1A037841B3565A1BAE26B3A9DE5706E432212D886F0504A4938BC4A806663162B8301EEDA7F0077A38F4ECDC1D2B1753CB63685177EDB53F18DBB2FC1147C14C78E232D52B8F502B913208E5304BEFAE3185A453F1B098A2F7FF96E890BBCEDB6DB448A2BA1C308F6B10D65DFC28EA175ECDE7BCF7D70F95C8684507242DD4B363357B589024EBDDE900E863692D616EF53C16472A34C942D550DEE88934297E7B6804E75D6E954BE6A43649BF0361C8EC421CB488757BDEAB7445BA0C3D64E741C8FD0A837D0ED754D8D0A07499EAAFF910EDBE906BA9D1EFEECEECFE2F7EFBA0353C1221A49883CAA8B73D6CF4628D22196DA353C7EEF029A6E88B55E868206396B43C8C6AA11DF9A9050ADEE7D9A313176B935D44D5EAB5E83E0F73C61263D46AF333A21A7A40AF0D0F1E3F8E2B14318782E663085A0A8E1B0BF8ECE7481FAFDFBF1BCCBAEC5739FFC747C835F83578CB016AF22CF1DD46A4D64692C2C24C302E99B2268EB0D2D0C73EBADB74AA4059BA8312E9069F9362ED052E27CB6AA84BAE79E7BCA4DEA743192B69AACF8A1CA11DA9C0B2F11B5E321E08E3701D4CE81C92E2A82677A7A5608064BED52DA24C948982AAA258C0EE0D85322DD78E38DA2F29178A062EE6434B8234028ED04451CC1731264CE10E1C847AD1D619807F8E091C3B8E58B77E08E2327B0D8A62D954AD75751B7986B4B9F969323C98698F17D5C3DBF803D8D2930DAD3C932F40BA0E73908F927C981AC90B8BF71178A4D63232404FB37B3C83EE06640EA0009835F1DB2842E7C0604C729BC20443ED3C083EB1DDC73EC080EF78688221F412E6FA83E33B8922ED26BD7717C7D158F1B1578C193BE05DF7DD9322E7333AC27213A7181D0AFA3E78F107A19A2511FB9EB20287C0CD202BBF6ECC6F1A387F1FBBFFFFB78D7BB6E9507A6AD691940DA59DCC028F52D6D6E01A5F3756626DCA9D3B16B24B99A55A5E0D31F6CCC9253884177D5D51309B5939022801818CBA806EE7E5445E8532201D46A3571F8F06101CF8FFFF88F4B202B7396A8F2D17EA25A1333F2DA256BE788DDD072324429971EFD3B0EBC700EAB073BF8E37B3F83D71EBD1B4E1262B9368D224FC4C14ADB884E562E8182110F349D98F437E8C04B46D83D33872B1616315F0B900D47023E3A7487818390C7162E24C6ED947615251AB3BD55FFE1FFA58405370E63A00F9D44B29587A9832F1F3C8CC36B2730E409614DFC634E46164E23316C809C3B2C10053E8E867DAC272BF89EC62EBCE2FAEFC453F7EC42D2DD8FFB82049704D3C8D7531C9D0A9127299AAEC7C00BA4E9085E1460667A061FFDE847F1BAD7BD0EB7DF7EBB30A41A4C4C87B753A6888C46039412AA5A76455FC7B8E0CAF6F08C94A84BC8DF38A557FF65C32A44B29B576168CA4442ED249C54EDA1CA41F5C3324FD4EBA9BE1D3B7614D75E7B2D7EFBB77F1BD75F7FBDA97190966092B0A11C08235F4B5B251401298A06D5A00C7EA3857FB8E36EFCEE3D9FC63DDD0E2E49E6E0441EF2C841960C2575823E2CC7D6AFC835128141ACF44D099B1C27A8B9C0DE85362E9B99C78C1322CD637409C8BC40E8F8927671FAF41F8D7D63E40DFF380C901DC508FC08792D441CFA38B4B68E071E5A456FA8C1BCB5460B69CE8CF9017C7F5C568C6B92C989791860BD48409AA091E4584FFB288A003F7AC5E578FEE3AFC1E39A8B583FF020BAED1ADAC3508AC30C1DA6E313CB099A8D86B0A08F78C423244AE3AFFFFAAF259991E33937372F9127ACAD412915C743DCF3957BE007BE49B6A59B40372075529B9F6DB261ADA63694E886B25999DA7CA5B83200132337C3D51309B5A388520338903F0412550FDA45EC98F7B297BD1437DE7493FC9E60B301B0B461EDB1C26EA54378A187D9D4476D14A1B3348BCF76F6E30FFFF5C3B875AD83D9621AF5681A2B5101AFDF418B99B6918714996C953EB3B5A57D9196CA1A8A2871A45A2AD5B5A448304ABBB8A43E8BCBE767B1ECF9982E7CF4F30C23EA71C60763151A6D8D64ED2C168084A892851F4B1C9C5FF868D45A383CEAE3FEC387F1D04A0F497D0A919FCB221D243922C783EBE5C872122B3656B040C228F4C2956C612788D01FA5A8D75C745DA033ECE0FA4684E73FFE89F8B1BD8F40D4EFE04831825F8BD06370AD5393C80E26CA8A53D83876979696F0F9CFDF815B5EF31A7CE0831FC4E2E2B27198A7489221BE72CF57E0B1888D51F9F485557B73F85ED2370ABAB19094187781D78432F9D652E81C0DC98377906609AEBEEAEA0929B18390127688558FA286A84E470E1FC653BFF5A9F8ADDFFD6D5CB2BC0BD96884FE60A4EC179DA904209D9834BA47311A4E88F53917ADE31DE44B7B315C4BF1FFDEF5EFF87FEEFC2C0E3B1E16FC161A51842186020ACF67B4812F213C2E37506A6095C821C2AC0821C48033A2CA95A070422067E19501BC7C884BA7E670C5F43466A6EA480743014C4C89E61462F3A45C2B2ED541476C9E242030130459803C0AD02F121C5CEF63FF8955744729822894A80B8918674D7E297BAC3A12E3296C50B7140BCF1DB1B77AA3219825D16A46186631D298F70FD1F374D378F6EE4BF1926F790A964217D9600D491221F42344CE087D8A3FCF8597C772FDA1242ECE8BBDF3EE5BDF8BDFF9BF7F17ABAB6B989D9D0155BEAF7CE52B1A2B593AA08C9A4B56CF342654AE218753ABD73427CC20CEF2EAD47D95B9309EF08262309FD8503B08264B4AD046E8F5FA26BDE225B8E1593F84D5CE3A9C3C4332A2133790EDAF6051C9C0937A7834F6F31A0338735C96373098A9E12307EFC5AFDFF1097CEED03A1AF37B85C16BE4293AC90AC2D087C7C8877E8AD009117B40E28BA505576A7D19E53E4F91F2B75E80C0F50510EA8B62F43AD5D318A364849976139734A7B034DD46C410A85121922D0FA440895C8E11419453438F614504A787235982FDC78FE3E85A17591089BAE99952668C96E762CC2470573FBC33DD39A614147206AD3A9A6A521018F100C41F9DBA22C972076B418EDEE804AE19FA78D113BE1DCFD97739E6B31E0E1719FAA32EE69AD3E832A2DE6F0119D5CF42E202A9024FCDCCA23F18889ACD2AB7CC2BBBF79E7BD52561A2535422AB0F4D7DB7FC5B4B333BF55A5D8BB8D8B0A30A09310EFA53D6823614E3C326B4F9CEA1CA26C8FDD00FFD207EF9977F190B0B8BE2786C346AE88FFAF06B7524A31CA14355C945820411255527467D6A0641CDC77DEB3DBCEACB5FC4C73E750F8ECE31D4C643DCCDD1A464E1020DB83366F0F24CA4079534C6D051D513465D7C4CE3B6967C3B06A58AEB85FFA03F524A0316707C0FC33C45EE66084719969B0D5C3E338B2B9AF318C523ACD2EEA905702899B214D3614398BDD56284BB3B6B38D4ED03830C198BB49051CB3330CC909B8A309C127350F605D42CBD32509B214BBA16C5C6CB785E51E663E9572E42AF86B8D787DBACE3F0B087A7EC6AE1A5573F1ADFB77C2DF25E07C79355D46A1192CC0713FDD362887A54130C0C87319A5353989E9EC2FBDFFF01FCC44FFCB8AAE0A6D065190A56D693304D0A6DA672BD5E3309CB1B17C9A95C78D4392780DA3930F14AB48D6EBAE9260991611D6DFEDB293231E049F7AE73078D220419D38318B59621CA3CB49AF338EA7878FB9DFF865BF67F1EEB875378D3754C3B1E3A4981264224C301DCC813F52DA36AC96AA8E23765862D17B0AAF2D55871F99D34662689E0881A2AC71835262B8080602060221FBD51078D1CB8726911FBE61650CB81118351B9A3471E7A858395411F470F1DC67AEC60D0A84B4A3DA1CC77A154497951C39891A091D8BA71846919545A1201B4F3E954CD33B1F1C84EAA80E5B90E52537F9C36FF54AD8D63AB07D0AE87B879DF63F1C22B1E85AB66E771F4C4FD486BA18457859E8F51AF8F7A10220C23747B3D78AE8B5DBBF6482630E78536D4E963EAC7C9F0CEA90065C1A47F5B26433DEF8FBC5AABCF4C3E3B3302A4C059038F4525A5A3459EC2774390E64AC3026994A39502F9EA3ABC761B49EEA1DE9CC27F1C3B8EDFF9F4BFE19F4E1C4114D4500B69B8D3AE4AC4E7C2B2575C04243234FBDAA87455EAF794AF6009854D39B8A6CEBDF496A50B4A8802474272D20058ED1CC19E7A1DFB2ED983E55A0BADD8C78174802F1D3F8C636B1DE485A7CF98A570C35A192DBFDDA234F274560494617563F48944B351F0598E01622C390DDC9F0C310C627C933F879F7AF475F881EB2E45315A47BA4A82A281B4C1FA803D4469269116A30CD8BB67AF4459743B5D713C6B945145D468F1A3CAF80A29C1980DFDA5E8842628563DE163868FE3C814E58984DA1920D9AB10443FFBB33F2BEA1E2B0EB9BE27C1A7A3DE104EDB07D218D3EB29EA5113A39905AC65C05F7DFE7FE196BBFE052B8D3A16BC45346232574C514899A380C2F5D11F0DE004BEA4A807CC5DDAA9F83BE30FF284C97091C50952FA8B1A3E9C78042F4DB1777A018D2CC0E1EE3ABAF493B1FB066D2871D0D03ED23023CB56EEE488AA1B8275C959FBCF4523F1B0BFEE622E0DB1D4CFF1B9FA7134E32E7E78CF3EBCE009DF8C6F9C99C7E8C80AFAEE0869C3833BA41EE9C00943CCCDCE9680226DAECFAD7E35214A045F269ECF4AFBC89012C6EFA60E3A76509097D71C0ED3250A799CE2EA7D131B6A2717002514EB3C302E8F1A40A7DB157DDECD1C0CDD5880B2EC4DE14811E25DFB0FE2EF3FF63F717F081C9E0FD1CA81564CF713550EEEB4F4B4FAC83C5FFC2764C3683E3969BA6380D224760D49E39FC00B9064B9D8228DA001C4190E3E701079EA6269790ECDA9085990A313779117196A415DD43466D26A3C9C8D8BDB5A92E299C6DE5E4FD7B991B4641EA9066623E4A983F92C84DB9EC51DC70F61D7D10E5EF2C427E1C5DFF1541C397237FC5DF3708E0D2515A49F8EB07B79591CBE52FC45BA6F9013349B935C5FA3EE4B0E8232A81691A351CF7A59C8455E92F24CBDE816856C5AFDC8474E54BE9D06D42FFCC22FE0452F7A914C1C7756BFA04DE022F553A1BB67EA0BF8A7070EE3396FF96F18D5E9539AC7E5F5368A568615B783C223C9104AEC5A421F0ED332B2021E5533A6F33117EA0C16C0191769D59831A9EB6257B954FB948D6B784D847980F543EBE89F584746E76F54479E7631DD8C509FADC36D3B027C465A9048289550362810C09781DB273FCE99A4ABADC3573946640297BE695A106609E20888A30061E2217E60847CD4C2F1F8201E39EDE243CF7F3E1AF161F4EB21DA2B21529FDD4280E5A57991509C17DFF34DCA892D6EA951E7928622766721D5709D28AA09994E6AB212F668FC56A65F94E1DAE93D9E006A27E104992C028A555B299D58DF6EE4E66826394EB06EF8C841237271EBE10E6E7CD3AD886AAC5294C0AFE5989D69A211052868C3304427607A3B0D75CBCAB1BCB6D52FB62F01B8FB4A5B1AA69E7B115DC0488A1879C8E0D318CD3C440D750C7A239C5859C770C0D8C01A3C2F1456910B9B6B865D38A6A79BA8CDFB48E8DC4D33095ED5463AA4C599B54B06539326D5DD4CFF5C019FE6FAE9BA8F50BDB3B1A65CD56409736833027216542B1914ECFA6893D1EB0EB1D64DD065DA7F1121CE0A5C33E7E0D3CFBE19C79A6B98EBB8E8D6009F499B8E83E5C55D46E5EB688F5DE31B3385632BC1C106547C9B5AADA6B962622F19C88D83D24DFF4335C6C89A4C00F53002AAD311BE2A16401558A9FB68C70E9AA18B773FB4869BDE7C2B82DA0C3C97793C03385E8E563DC4EC7C1B458DD248FD53A324D585CA9D3673243BF61C05942C4A86D215452AAA1DAB22F98E2FC52DF3A183DEDA0027565690258EC4E431DE538BEEEB9AC9F83FB296C908CD4684A9D936DA33D3888B01567B2BF002551B8BCC8353B0C95C80CC2BC0661D1E231A4E1B27684C18A6DFF347D9389869CE70A111023740DDAB692DF624457F2DC1DA7A1F715CC067DB1DA7815196E0BA25179F7CF67370BCBE8299AE8F7E441053AA8F0125124A543E5BB2C80CA72129E4F726B05C0155FD54F9F24DDC799CA6B866A2F2ED28A2AC8462EA3A2514B933461D34D31C2B351FED11D0085DDCF6D03A6EFCDB5BE1856D448C832B62242963DFA8B0E798996DA0351D21F75D0CD2589CA34EC0DD9F0ED592E6DBDEB38B04A011CE9A1589D432AFFB4DF85988F563039C38BEC6807309A665992D3AFEF947C26C1989E0B9703C474A86911D7459103377D19C69A0315B87572F903A2C1D93A318E5146A52D492EA96684B927A72FA6797D417531C854B95AE01FAD402C745336802A31CBDD52EBABD21BA436E3235F86E0487753150C320E997805A69AE61BAE361C0F02C01948BA585A5B1CA67FD501B58D2939D4B4E8D2A9FE521C71E5E13D0580D9B65B0628A7D13406D6F519EE5E853036A2CA1A662078DD0C37B0EAFE3C637BF0B7E34656A27B23793234553923845C4CA0A418199F96934A6EA52F8A437EA8AA4A0856CE778E3121887448F459856F151654C0B3C03720000200049444154B67EE4058B99B05C5803C920C7606D20214E8402EB9DDB1639921FE8D2D6A00DAE5D00790D4698275E0E2F256B090CF33EEAAD1033F36DF8350D5E2560338980D7C299DC03A413A2B2F4FA34EA882AEB37A8CB8CCFEBC0173E9F00F3A41E7ADCCDB07E621D716F8494E923612811221C983863944403C36C807DB3193E75D3F3B0D258C374D7C320A464A4E3F96440295167483BABCF9967B205269CB01649093E8D3CD287B206A26E0E34EEB42C739226D8F7C87D133FD40E426A23A03AF07257C2829A4982957A84A96181460D78F743EBB8E96F6F455867EA76061244B6161F721F1999B39C5C5B8299761D53ED3A6A5335AC67EBC8C4A8F2240E4E15310D58859B18E59FCBD61624D71412B27022E5FC420887FAB089D5B53E4EACF7900C6284F59AA4ED8F688F48E80F43D5B856120991628522AA9B5C3B04965961722CC3A746C391A893D3AD69B4E62224B53E02AA7BA956452298F85E2467A45E839309F942A48965EFA5F03375EA8EC01AE7195ACE34DC9187D5F575AC9E1820CFE98F8B24C856630395592CC07E570DA9FBF7E8C5009FBAF18771343A81B9BE8F4E48954F01B56C25D4FABA867F1932450A4668AC9ED9874C933C2A855118092951CA221968A5CC8D71A593C05D23CEB0EF9A09A076104F2529A12A5F474880D8A5CA0751F9A6E21CF5D0C16D8754E50BEB6DB1A12C452C4E76E9B7C4969EECED95211E8ED024BB365547BB5543E130602941EAC49A4D20B1794C7E5079A54578CCCF6E26A5B9D850ADEEB3726C817890A1776420DD32689C33D29D80B65D3308184638287054DD7324AD436BE96DF8486683AD6357405A8B862EDA73116666A6A4D3476FB88684298FD22551438F1855C1B111BBCC49913999E45A79458480C17C5981A4E362D81BA2D7674D0C46F0D74505D5B2CC04A5761A64B11955F96205D44D37E358ED38667B01BA61069FE91B1540AD77D6D5CE138A5C0374A5F8B404C76AD486565C062561C8305DADE669AB0698803F11FC15D77492E6B8C6F4E9D9C94575315FEB2495AFC811BB0E9AB18F954681A9381340BDFB501737FEED6DD28FC975E9731A774797043C2912C285C20F834C33A4C31833D30D34DB35D4DA2106791F4931D4BEB5DCEEEDAE2DB415AFC77CA84C53C6BD26B22EBB1A76D0EBB24794271284159334EE8F3431179272C3E30443DB624683ABCD6E6C24A3E9C621EA2081C760564DAB778A54524AA6A6DAA8CF44C8DC14BD64244E6AAE4D864D514051B51BE6B41173D4BC86D4C7C84629FA9D213A6BB42B53448CC667B9337119494AB186D69BF8754D02A96310C778F4928F4F3FE779381A194005197CA6E15700C59C296E22654F28AD972BA926D242D78E070115459128CD638E6F6323A9713A8752A0FBF64D24D44E6E000414A513A9F30E435C9021765D34E3C0008A65BD5CBCFB500F37BEE93684B5165C8F8DA56D96AC768CA725CF9D976B864281067AC30D301C7411344334DB4DD4DB7538618124635E120F4D242F9DC4038B57720DB0086690FBE8ADF7B176620DD9886590A9EEF8C2206AE6AD662094C1D39217341E95719AB84DAA1BF35EF61CD17AD8078BFE9D34475000FD4CF3BA1A533534671BD2A626A53D93327C8A7CB8AA962C164436B0968588FB39D6D67BE8AFF5E1FA218230149B924555F8AC1C078942A74453554B9CE0AE4B4025B86E9180BA194708A87E808E9F21104039585E581652625D543E5E434BEB59B4D89A2B1A2461C643553ED5ACF563F56C5B837A3C52F4E44F00B59370523F144B26972C1F552C01948795466A543E0FEF3ED8C58D6FFE47048D69D9CD4F8E3050556E1CB7670B37B2565D82843D9EA6EA68B69AA8B310BF9B629851354A6411724776933A524AA5D5550CBA6C8616C1635CA1AC09D609573AFE54147C1985BD415A9D7AACAAC7D24795C4F45945524C32CB069200C834F5B9B910F5868794F5F78A04944B85CF629D5388D6231C3D760CFDE1004EE24B24434E0052D219E2624CAC58ED8B4B9D722E01F250F2A01EB32BC4BF3DFBB938565BC1F4BA8361C31DB37CF38B25A04ED51FAA1AD6677F560975D26723B8ECD79C987DD75C3321257610539B01C5DCA4C423A0A8F265984A52D4031FEF3ED0C18D7FF72E04B5365C8950D88AA3968E4E176110212D628CE2583281A7DA2D3466232064B9FE0239ED8F3845D60356567B12FDCD022AF5B0A9E5C828D1C44F79324D7C3E4361A5ACEBB0B4B42BFD6CA5108BEF61900E119068684468B61A68B49BC2028EB214BD6E82C10AD53B967B2924395348B3CC8658693CDF465554858696CC63FA3E1313333C6639C4EDCF7E0E8ED55730B5EE625823CBA72ADF521550265262F3FB6E2EDA22801AAB0FE362135666198E42E68FFAE9351395EF7CD6D049E79E195029A61392122E6E3DD8C5B3DFFC2E44B5295D105B0094AA26A4A4B5D50D4D693AE759B4845ADCE2D2AC2C56A65B1C3BB4A219B38C08109F8B49DDA07A27FD006CF99E9D05151B60B3404D4EC68E511E74D032852370E0339E911DE8231F7B969704689DA327D0E9F631741C51C3248CC9F3A491B6CB5267ACFB6E1A6CDBC1DE68DF6D04D4F5BB427CF2D93F8C63B51398EEB8E84B171D75EC2ECDAB1F8A2A5F197A6413DA4B7DCE8C87F9CB09A3A0906C43138B6487CB26940951A16D716407B866C2F2FD6F00942712EA4423C54C92A11E79B8F50055BEFF81A83E8D02CC271A4BA853EB13AAC5D3D149435E766C3169189303A9D910D26EA2EF87B6511E20F11DF492AED0F18CB2908E83DCD533824AFBECEA7D2D0D7EF6A1B0C57E4E294FB97F4B163025A99602A20A48BF153B17323371CA6F2300D9BBAE14A069D51BC8EA2E56BC18A334314997B934860B49784A37459655A35D37266EAC3573B2CA17E1F61B7F18C76B27D0362A9F444A380E163748282571B442540555640E4DB908918851188AFB8DF5006C354C4DF23211BB26014D3CD1A2F25D2BE4C4E4B3332370920D6522251845BE5A079A31301546B8F5C1153CE7ADEF02A2FA86E052895D338F42DF9186E1104812EE2C910601593DF64A4A33D9E56B610D41EC223EDE4711B333600D7EA381AC51200E32F4066C23938BAAC848081AE20CBCA1C3551BF08D8BCD9D6914241E4F8ED51875D202EA0B32D7A494715C24296B02FA08DD0C71DC47EA6468D59A68A10D0C72A4A304FDF51EBCCC413BACC39BF63098CAA40F14BD0689A7AA1E43A224E282528B9B88C994F00D63A26A20C1469631C0304E71DD5280DB6FFA611C8B56303F54524259BEB184627D09FACEA4DA919039A609A17145491336E37C768230105A4F01A5E566B5C884C99317346A9A2F93DFAEDD778DE4454D3E3B3302279312907257634015988A42DCBA7F1537BDF55D70682F08056CC8A34ABEB5462698740829E842F28F3D68638459282D6B4227C2A83B44D21B49E029D53F2103B8CBD61DD4A6D840C0453F4DB01EF7259489C9750C18158ADC24EF9DAC4E9DCA123F1950260CC3F0605A2783FE26D6C32B9214EDA081C86FA83F6E3DC1A81F4BC1C9665447CD0F3158EFC1F101772644441F9B976350F4D02F86C8A581754D6A4D08F1C1C876D2EDF453196ADB2529E1922535805A0E70FB8DEA879AEB87E85668736B43ADAEAD49555B194F6A8C961537318B25C9C2B90883A0900889B2DA910E8C86A6DB6652FC9A3525123CEADA6B256F67F2D99911D87140196A9712495AB93262DB0BD0F65B70060E46AB23A403F525895DC09D3CC9A57119034B1387B52A9AF0A7EA1821412F1B4A8301EEC2BE51A1AA2CD6195B979E42424993363B7452778BEB3E9380D576D844943750747374D7FAC8E2185EE84B0116E94125A91FCCFAA50B6704444034E523687A18B9313A4CD330522F60E1D09C640BD3F1956E17C942FFDB360145D693D9CF4A9B5B6349F9860D0E270A9E200C4D8B002BBFF46D75D08CA66EE29568D03EEA518F9A006A67B02457D90C284DDF00DA31B0522F54E58B2223A1FE874A281AB486BE2E553E495F3312C4A854A492032F44504448BA43744F0C10A62E6A7E4D6868D94759A52825554C3E823E29A09FC640E8A135DF82173918E523F4F358FBCBAAD3A5922555252936B6B891126992A4AA655734E055D5520DD61157B2843AB112AC330A91AEC7187546888A084EC8FA104AD5935C618402B7720FF4410143A78391C71A852E1A33118A46845E9660341A6AE96776E7602F5FE92745A5F51480B22A5FED04E6076145E51BB37C945081103525C360B230C6C110FC4E9E532225B6F8A1649A006A8B83B5C5C3AA80623ABC0D2815E58D91E22E30ED3978CF832B78EEDBDE836118A2C65262A6B0090148562B71B4925120E594C9961568E611FC61886197B5FDFA928220B5BB59E8D201060C5A75330951F3720F5EC645E749346B9E7799EA8B7623423117E2583D45DED33633999BA02624BA8617597849A4B844E28DB7635A111E555116536184108164C294580885365DDB09E1AD65E8ACB19976208B5FCAAE30725D1A5D2B99C2EE216400194EC4280D91B0B4F7136DC7E44DA5081B390A2F40AFC8E48FE3451217E890C871189AC5F378591FA324C3BE650F5FB8E97938E01FC5CC2044225D6B781CB0B8A82C1F2325AC1FEA6CD33A01D4D946E861FE7E8384928C5DDA3E8C44D0AA44DC55A723FAA156F1BCB7BE1B71382546334B2DB3CE1E435F860C6465D2A1CB809A00114278998B7C3D1330D126D6405A0D99F14D681B8370191327363C9730032D187121F557280BE8E781D820F57688ACE120CE5894BF8B946E2C2F82CBA824B1DB68879BEA43A64974D51D437532F552893564B2530375B4DD863481EB11483D76E0A823A5046323016156D42694A05BE28B928EEF4E9ADDB444254D2ECFCDFA810E4B9879081911D2F4D17763F4286DF976A407E438DA841CD810FD618C6B77F9F8C2739E87838D154C2721464E6A1AC039521E7B02A88719003B7D790B28861E490B4F59C2E2FD93C5CF8550F7805B0FAEE2A637FD7738F559B028B057A4F09D5C2AB452D30BE149392C4AA9B49322E966F024044FDBBB6E8C64B0B7D0A058319FC5682F3549D36E94A1412E5C861FD1CF3317C16B8740E862055D69E0C6443E8242CD212609F27A9490A605A7A87A4C332498D864DA91DA13CDBC867C2541776D2012493A5EF029A41478A512BFEE2A650408259334CC96C60A5A4E9900A30A494948B597A0F09B3E82962F2AEDB048E40FC7C64304C74F910C49B201D7EE09F099EF7F160EB65631350C3074D9795E651AEB9C4F00B5D32BFE61BEDE66407131324E8D3D93A84235C308619EE0B6633D3CFB2FFF014EABA5AA8B31E8C986B5DC10F52C423A84946D4E0629FCC4831369066B851454B89A5033910262D610BAAC0368E8601321AE347186D00B85054C923E8A86877633423374B0E2A5E8D1AAC9C89AA9C52DA548942C569F4D46254FCB4DD75C0F51EEC34D7C49FC8BBB31A2A02E4988626F999840F17DB99A0A2F25C12C4926A18AB926151A128DE790E266E14BD2EAE2BE760A8C18311F79684FB10B628E4E30449AA442B33B918B22659C60817D7B6AF88FEF7F0E0E4F75303F88D0CD7A083CDD2058747402A88719003B7DF953014A776B0D93618D8805BF897F38F0106E7EFB6D70BC16E0A59205DBE44E8F10FEC885DFC9D01FA6E8B1835F106AB7084A8B8C45336D147A8926433C195BC746B69EE42156E9C5DA7BCC6FA284C16880A10BCC450D84ED002BCD91B071235693F5553DA31A96B1A22BA31CD81CC0F751774334FA018A6E21F1778C1D679933F1C050E0F8243C52238D4CBE56851E538E6CEC2A5091AA4CB4326FCC2C26F83C4D361407558A80CD07DA0E9A33813086C7DD0CFDFE71B8ACCD517878EC7C880FDDF82CA4E931CCD597D01BF5E581286109A609A0767AC53FCCD7B3E91B2F79C94B84F1932E0EB95676A57AC370A0DD8BCB78E7E7BE8417BCF5BF23AF2F8A0A852010D5295E1F22EBB28A0FD52C360260F4C3B826BD4833A102B612FBB7F96555D7B2691054B158968C4980A4A4E9E3CAEB2E5AD34DA4418E13F19A04B686515D7C4A4E92A119B6C4D62AFA09D235764874852667C30269F026F1779A4B252D35A5D9D956AB9E2990F4C39F59875DC3AD287DE5BF39338487C256D6DA35A0568313A6E86729D6FA2770FD9C8BDB7FFA67B1961D879F441244CCF79C00EA615EF80FD7E52DA0347D43490902CA65421B0354591F22C9F0F124C0F7FEE17F0366E6B050AFA19104888F74908E728C588ACBE382F4A4B0254385243542DA139E47D5239322A20DCF487C1428924CEC3516AF2467C7227479E8A168FB5228A6EF26186424480234D93E6694235F8BE1F675D72F8C7A97524D7429BD683F696854B535E7D6C67B13A06C7E124129CE5DEDD411B16D569261E831D0B8803F1DA01FD4D139F610FEEB375D8A7FF8AE6760CD1B48BB9B24D74ABBFCB023C7D924D4E6C8C69359BEB202D2E61D4DAB1E4D68F3AD4DF5568FB2852E99BEC1204CF167D0E0F63DA429BB563059101814116E7FA88B57BDF383B8E39E63A84711DCA081A297C20B6BE8FBB4385284C200BAB25069BC5362D88AC05B7D267B9C3A2DC93672E71FC175B43C57BD003A640B8B1C330930F41D8C58F1BF1EA139457593AD69805177200B394A3D840360E433B53CD7AEEF8C1564E62D8B74D2F631B182A76D2F7ADA87AF90380490483E880DC5E7CE6A1EA6E31A8AC445528B512F5CAC748F61B9E1E2579FF75D78C2A397F024771A27D235B80851B8A974E260E02D8B5CB2B6B904C79A222DA70DB82F8363C3A0D094E8CD190163EC59F795FAA1269112DB5D98673ADE2618BEF295AF94AEE5CC0CE53873C7D62ABE9AD4C6101AFA4F12BF89DF7AFB3FE34FFEF92EA4B53978CD0097ACF670AC95A011336A3B1329C51E485EB329C9786C0AB6B5748F939FD4B633623116AA62AE306CAEB08BF409D1FE61BABAEF1598868B88BFCB1841EE6010FA389127C80A1735D65B2F987745758F01F38C7BD26673394B7F4926B02F3617A9FCEDA9A86685CA3A66CDBF0C53F5966447B046B95774904F35B13A6CC239760CCFBC6E377EE7FF7C06AE5F2E3062AF6209BF3501C42CDCD968481BD60D3694E7DB3A2C1515D3081D0315E149C220B45DA33634A816DC8B7F42236BF933C5F4B59348899DC4535953E2E52F7F79D93645AB08692D040195990CCD522FB030B3884FDD7514BFF2F71FC1873FFD15E0CA79EC4D7C8C0AB6D06C603566BDBEBA76C1A094D12279DBFED86069DEDF65192551D98098AA9514FFC944BD64BED62CA311564E60B4FF10D2CE3AD06CA0BDF712607601EB1EB0CAB63AA9F6E4656483941B1B25EAC0A5F6E869DD70A6606C4FA21AB54F3A9624F0EA0CA7F2305C198A9FABEEF938DCF431DC7F0CD7CF39F8999BBF15CF7FCA63E0AFDE87F534C2D063347B6CD44D668278D201857DA14A40ADAE09C9A3A69A8D341F37742F6BB570DB0A8240702D0536A4A0BB9E27FEE932E557AB4DB030C7A3AE9D841E6D7B659EE1044AA897BDEC6592B5CB9F494248BAB50407182048B113F6667231F47C04A32EE6030F2B6E0BEFBCFD21FCC23BDF87FE09C09B9F971A7E593A44443B62D413EA9D355ACF859290D20834D0D97B370B04CCB1A3855AF2780476679E891AF09204BD430F6278E8101AC81136027446230CF200ADF925B4969710B71B588B5911A9C088C16E9E8B801112AC72E42460CD18296AC9E008D3A462EBE36CE9494A620FFDD481DF6C8B27777062151876F033CF7C1AFEAF1F780C961A47D0ED0638EE2F62CACDE0255D242C7D2DE1AC9A7121E92BAE2BDDE1C5865A59831F6A540607525D0FA6AAB21028A6E91A0145092521F9528A99F55AF46F024BBAB431AF44764A76279F04C76E7D92B77624558BEFFEEEEFC69FFFF99F8BAAC7DD51B26453D64DD0E80631B0A96FD1AEF232F4923E5AB5169CAC867AE4607828C18FBEEF7FE183FF7A27123742ADD58093F6D18A5CC4096733300BC66A7EC6592A8F585652D1632A8F2D35F25CAA9001EA59037DF491BAA914929C725DB48619F29575AC1D3B8CE1A08746C8E6D9DA302D20855EB8E8242CFAE263716609E1DE5DE80701D69221BA8EA37186A92FBEA5C41D0A5F47768EA9236A828C1B09948D056C585359885F6BA0484D8D3C60151724A4ECE321D295FDB8F67157E0F5DFFD6D78DA358B38E0E568F686E883C1BE4018D4246AC36E3736FA822A5FBD5EC7FEFDFBF1A4273D09478E1E41E0876529669BB829744FB555107F0ED80FD18C64D92F548B248903511CD5A6EC531A27B8F6D18F9E04C76E0D2B5B3A8A0B85A07AE2139F08DA514F7EF2934552B1AF13FF445124AAB6A85D9E27D9A46CD539720AF48B111A5E84C0CB1136A7F0B7FFF30EFCE507BE80CF7CE900A6765D82B5511F4DBF40C198372E6C86F97147E58ECCD2C25CFCE208920023E39CD5B633B695114904D96CE9D6F113A19F5B898BA9CE10C9894318AC1C45983988F210891F4AD93136B2E6F51B858780394B1861444ABC3587687A06C5C20C561B01BADD44C049658ACD0D0AA3EA92554C28A532AD022B795EC2565282A9A460036C6EF2092B34A5EC3795206D904209B07AE8202E9F6DE0A7FFCB75F8A9673E1E332C5D3D28D019C560F0C854AD211A99644DD0359126A5ED3A3D3D2DE9226F7FFBDBF1EA57BF5A7EFF9F5FFA92365C93D42EDB9ED4F4B4114FB6955C245B7C096C323B9856C5D4F6A0636FB4D61E23F598E2D113406D09285B3D8880E2A4B14B5EBBDDC60D37DC20EA1F7578EE980457C8222AECFC1E6A578D643090A4402EB0AEF488854453B4679670A493E10F6FFD04FEECC377A0E34D6176BA867CD445EAF8A0C5D260F1D4AC8B78C03CA150E2EF1864AA0558A8E2E52221723608802F691DB114E077B0081F8D610749670D2B478E221BAE238C982BE58BBF4792424C25D998D47FC282956CFDC9B4F414FD848D067C4CCFCEA335B70BBD4613ABD2910352F588EB8C81B7391943D3565DB26E1D4D71D70CE4042E8311B3004EC69E236D24E97124D319BAC77C34E202DFF9C45DF8F51F7C2A9E78F92CD6568E48AB9DA8602747093B97B83F5BE486D76DB5DB180E07989D9DC33FFFF33FE3965B5E83CF7DEE3FD06AB5641AEFBAF34E2937AD26D4380ECA360F280592A46FB0C66E696B593E4F7FA1B92E96C2D0CAB113406D152A5B3B4E0115A2D96C49C335AAD5975DF608BCE215AFC0777CC77708D88E1E3D2A004BE2041977499785577C2104423742BF3742587391E47DCC4540DA58C6FBEF5CC19FBEED7DF8D0E71F42303D85C5998600A09F25C8FC1A9A0464A6055A52A67CE789F49D1D0D07A236515A305D824988045CABE62238BC8AECC043E8774F20F53384615DCA74D9D4055BD7D12A8E928F25414D0CC865143855BB447C528DDA34DC5DBB50EC9E45ECD5D0E991DE4FA47458416692D289956473F57FD9BC2BC70BF599E9AC0D586F9D0C680DC78EF9D8379FE2A53FF48DB8E9DB1F8BB07F04ABFD5534DBBBE090321F0EC506A4439912900E65197B3F94CD89DAC06FFEE66FE23DEF798F24D0CECFCD89E6C0F48F3B09285F01659B02E8BB56DB0768148A026AB3776AD35AB05FF3A613406D0D285B3D4A62D85C1F515813237865F5B8A8DAC78F9FC00FFCC00F483336768DFCFFDBBBF618B9AAF3FE9B997BEFDC3B8F7D785FB6B18383E210C02E860895FE81690085586DA380A0C14011C510290F1A90AA483136A63634362F2798004E31D40AC2089C4484B61675086D4442092125046442E59A871FBBEBF57A76E73D73E74EF5FBCE3977EE2E361EC79B508919C95AEFCE9DC73DE77CE7FB9DEFFB7DBF6F646444E01F0BE7B8E058BD41A8E22463C249ABF9717439361AB509149B16E6647C04DE5CACDFF92E1EFBD1BFE07F470FC31B3A1981E509D268362AA0F8013D0F7BF84E4EE6914AA545938FA5E595441D69C7418AA0A55440736C1895C3E34095671F39B200019B53D39B28D6BBEA99CBF0BA3A89C9518164D786F27681C5B211EADE25A4C175CDB290EC7291ECEB4773D63CE41A75549858650F612A2191EF5EABCAE6C1200155B748CAF2FD1812C92CE05A189F1C43A6F80EAEBD601956FEF552F4DBEFA1DE7451AA5490B4183AE7B762D778E6E6687C7121F5D24053290F8EE362C7BF3D8B35B7DD8691E161C93B11113017C5B969342AD8B5EB4D257419A9880AA37DD3265A7BA88814F3075817CB944F3FBD93876AD758DAB98E93C61D928C69655C54F2518A3EB9DC2169A24CA3BAEEBAEB2402C8DA1C3E38C1FC47122D99150C60483083DC3B028B7A15A95805C96C16AF8E00DFFAD737F0E473AFC1E9EF86ED57E0A5320862BEEA2BCB739AAF0C9B8B9511ACACD344B656437CEC102AB9832897738853EDB5C9C4A90D9FDF932104C2434D6D1267158973E8C6E81A11A94008EBB5448F3356D510AF8284E7C2E99E8F5A7F1FAA290FD5661C956A80244BD783B26860940FD781641C48DAB0260BF0BB5D4CBC3782733E7906BE71F5F9F8CB4F95112B1451F33D043C17C56DA1E1B3CC8515CB52114FD1CC8642043D3D59ECDEBD47CE493B76EC1043220AA0A129067B429F638F625051E38A06726C3943B56C4F32D5C625693517454EA6E2A88FD34FEB0425DA319476AF31908F46C55D9846434321A6CF66D32895CA92F03DF3CC33B16EDD3A9C7DF6D91209E43F1A91E953CB4520BC38CB454388ACCA5B38CD3ABA9240DCEBC253BFD8856F3DFE02FE275703126564337D68C42C54FCAA947E34EB4D3816E1640CA97219F5F7F6C23F94438CA172EA35580E1A0C0430E7A36F50209D68861F3B302F50886733D1A550455964D79325DEA8C76165D2704F1A426DA01F638C6A561A4805714CC658EE5EC72CB86814028C5835CC6AD858F7D973F137CB4E41B62B8E4394166B3848F0FEFD8618AB63C761D3DC6B55398FD2F3781E0312C0962D5BB069D32639A39E7CF2C9F2930F6E2E26754107E2FBDAA02C52C1A676A33173AC209E62DBC7AC08E493141993760C244ACC5C3762230D9F16EEFB38ADE3A1DAB595B6AEA341D13B71A285EBC68DAB5E473A9D42A9540C3D0F83167CEEAAABAE9226D7030303E2AD8C019A902FAB79034227BA2A8BB53F0E927E15B1FA04DCFEF93854AEE1CEED2FE0BE5F8FC31F3D88A1FE6E94C81362A331B21D0873F68DA0B27F042E43CA2C43E7992AA070BFD2A9B0589128E15F2A21999CCCB16F573CB00E0CF0EA20F0A56B08BD41C2579D0D93B0617777A3B16008A56412E47E374A55F4D8BDD85F2E21703C7C7E41376E5FBE181F5B3088746E12659E91E21E925602956A01B64B564620A5F0413306279591B54B2FF4F39FFF02EBD6DD8ED75F7F1D838383A1682B8D8DE36EE6803FF9BB9CA1DE5467285DF5D292118B189294C0307E62592CA2D6C7C8687B458906EAE4951E2B65501D0F75ECA5D3FE152A91680BB4A3C7E1247272B91848DF917D4F17D311DE150A799C74D23CAC5AB50A175F7CB1847879780ED9156C6E26D88A392C5BB874E4C93C0261BF000013AA4944415431CAC6F2082799443699C62BBBF663F58F5FC48ED7F621397B2EE6DA556446F7617278946811763D40E0DAA2259188276111EAD5ABD25D90FC194742C5AA8F1335F5DA6A322F89E2685123E12D398BBC571FC9781255B6E969FA48916430300BCEBC8FE39D58976C1EA7BA05ACB9E45C7CE1FC45B02B75346C17FB0AA3C85A2E52F4B4014BDE2DD8CD3A027A6C5614DB49A45D475EBF69D37D78ECB1C7C573D3B8A26243619E2B24042BB4D068D4555082A154E9EBA4D30AC666E47A2D9546CF9B48584DD5E24435E3950A4E09B56B413F4D905714AD4ED8BC7D5369EF4AE3A1441B4F4445147EE743B4134C5364FD763C5F118A8C8C0CE3924B2EC5EDB7AF9570EFD8D8283CCF9C0118817350C8E7E17ADE946ADD26DB6E36EBC8A6D218775D7CFF3FDEC2A67F7E12EFED1AC79C4C067E750CF5862570B350E299A40E3795062893CC85231A0FAA90D074396FCB98427C14491DF33DC8E7735C54AA75C4EA55245349544A05A4AD2EC45C07C3B55164FB8670F95F7D165FFDE29FE39414458B7CE40A07D5192E66CB62A7CC34352A9467614D982DE3C1C7B3CF3E8B0D1BEEC49E3D6F63CE9CB902A7795E3209F49091A2C3E2E6776E6ECAA0DE6CB504550AB0EA9014B6D4527C4B89765A5642153FCA20298C289E499F28A3014026183B51BEF60CA5DDAB8E665006C2BDBF29000DAD81743A8DBD7BF7A2A7A7075FFFFADFE1FAEB57209F9FD02D3963A856AB9247E1CFE90FD64DB1D71365ED7B7BB2D8F3BBFDD8F0E873D8FCC31790EAEE455F770AC56201AE65C34B7B389C1B87E72A48A404FD35C7B0DD9BFC80EB9A01EBA16CA9EF6288DC65933437815CA582DC8103387FC9C95873F315F8CCB90BD02CD4902B5A68B26F54A302D7A5B6845AD8DCEC5590A626E456321DDE79E71D3977EEDCB953D2128C629A5211698E2D245EC59B34617915185294AF9641ED52895DC9C71A29B1703FD1CAB1E2AA95414563EA61AB8E56FE2AD41AE061AF635033B08A226F713483E2DFCD441B38A276C5A62C985C2E171ACCE1C3E358B26409D6AE5D8333CF5C8262B124AFA531196F673E926BA541E677C246AC348A188A48F77D02BEEDE0E9E75FC6868D4FE1D7AFBE8E051FFF24FC660CF94219B37A7B50AA1425B9C93305031433F110F2B550E913A8F981C8A3F5245DBCB56717FAE6CEC1DF5F7705AEBEF43398D71DC3C4F89BF09B1EE256AF84BE4579427A40A90827173F8D8841051AC7238F3C827BEEB947C68BDEC8753D490D9009C1800EC787D7D3008FEDA176491572E899F4CD1BDEABEE71A3B8AFEA0C1586F58E4EF3D76CF38E41CDC4526ABD47D4A0B8C37261D0083EC8A00CB3823FD5219A8C8A49298B58B16205BEF295AF09EB82E786E8EECB4F655F5C8BDC4D86AEBD0CF27E1109DF412A7918D974370E4E76E1E1AD4F61F3D6ED982C07E81F5A806A59B506E56BA740D030F16F18812DEE9D814472A7E1CA935F5A877B81B3A461C4E0DA716160E4C6F7E32F969D87D537DF844F9D9C46DDDF8FC93C43F5196432ECA638AACA407C46456DB8AE83F1F14352BB4498FBF2CB2F8B577AF1C51771CA29A7682F43186D4B7A82B54DF4EEA644A65D0FD5B68C98094AB4B34CF8253A06D5CE48B57F8D3128C211E3818C473A524B16F39C5908860A432846633C70E0004E3D75A164FD2FB8E002D98D19B4903C15D5629B148F0CD0489267172056A9C3733328935F140BE0A5E3487829FCE7ABEFE28EEF6CC34F7EF632064E9A27CD05E80D9AD29797A5F6BA549FC45BC945718356755724BB2AD3D14C6C56258612107CD6978432A3E171CB456035303E7C080B66A7B0F2A62B71F9C5E7C16D1624A95B2C0748B341402C40A55687E528A9B17A9DF42B5BA05E6F6F9F94BE6CDCB811DBB76F9771983B77AE304F18EC61F2967FABD5AAE2AD4C30623A9C36704FCD49423C7C1894300586C798DA30CAD7CE12E818543BA3747CD7440D6ABA3799FEFB91DE595481F479803F1DC7C6A14363723EB8E8A28BB061C386B0258B54DE3602816E9249E2FFC928674F593F80E33A28D754A942A6A70F13350B3F78F2DF71E7FDDBB0B76421D3D50BDBF1E1971A483931C41BACB76235115565C934B755C5AC08EA9374CBE2C6A6F404968603FC2C36D62633A3E2C34BBA28141B8857C670CDB273B1F21B37A27F16509A98845F9E44C2756133AFC47C90A827314246E81587E32855D8EEEE1E3CF5D493B8EBAEBB255F4783A1A732B4399EB178E633B266D3CF4B5129E928B43639C18E411DDF7AFED0AF8E1A94817906D37F9041F139739D49EE727170576548989ECAECC0AB57AFC6F2E5CB05FE31B725A5E1012B80D93A46C1C65ABD0C3BA108B735963E90CFD63F287AE6EF8C16B07AE356FC60C7CF90887BE81F9C877A390FC70EE0D7E342CDA0D7909072A03886094BEBE6B1A33A397ABAF134AB68DDD4002A9500E307F7E04F162FC4FA55D7E3C2B3985C2DA358CD239DB451AFD590EDEAC5D8D838BC94271E83D4233EC878E8EFEBC7EEDD6F63EDDA7FC04F7FFA3C66CDEA15C3E186C2FB16E8CCBA2D6ABC470A2CA34189E993DF31A80FDD1C4EFC0B4CF750D128533B1E4A413E558C2849E11A2371247C2605EE71210E0F0FE3BCA54BB1F29BDFC492B3164B2E8B7C3687410642C0066B9102B8B6877285CDD89AB092094C164B88D92E322EF5D57BB1FD27AFE18E6F6FC3AEDF1DC0C0FC01E41B6524621921D93214EF0AD3BC815A9D9ECB819D484A293EFB24C659914B1E9F03E447F370FD1856DFFC45ACB8F27CC4BD0A460F1591B6D348260234A4A52ECF7AACC76241A26A584DB253571719E0317CEF7B0FE3DB1BEF938D21935670598C85C11CCA0048A77A5FA49E0955CDE6C2713ADAB846215FC7439DF8DAFE50DEC11814A35066F73406D2AE414577609E95785660C294410BAAD19274BB6FDF5E61635C76D9E558B5EA16785E12FBF7EF97A817D3244C10DB8E2DB420A59BCE9DDD470315246D17F9F11C86667F0C13BE833577FE13B6FDE8BF900F12C8F6F752231931D655356BC29D632F25C74E2097AFC34A649048D45171EA28157CD40F1671D185A7E1DE357F8B85B367A17C7812093B40CD6AA0CA8EF77617EA351260552D18D9EF648DF0C160C22F7FF92BD0E3BEF5D65BF2DDCD46429029DDED752BD0E9895A33B9512F74A4093746C5B9E0983092A8D8E6ED45363B67A80FC58C5A1F3A5306154D529A04B1395F996007BD15237FB367CFC62DB7ACC4B2659F9324E7D8D84111C667A450450E09B9B8E33711B76AE2F5B2E921E4F2C3F0524D7465E6E2B95FBD8B75776DC12BBF7D159ED7876C6A3E9AF1328AFE419681A3526E22E5F48AD7ABE60F225F1EC149030358F9B51B70F9A59F46509B40AD9C4733484A8302862AEC98A5FA033078A2FB3131ACCEB2127ADBFBEFBF1FDFFDEE03E8E9518C70425D1326E73DF28C7FA4BC5DBB531C45077C0D43EAA447750CAADD11FC7F70DD4C18146FC384DACD798A6708C340E7F3DCB9798DDA759B92B8A541DD76DB1ACC9E3D4742CFFC3BE5C7B8A8EDB827F0A95A9D403ADD8D529930AA8A386B95E022D39745C96FE0FBDB9FC55D1B9FC4482E81AEA141C02E8BDA90C54A624A8C156B28E586B1E2868BF1D52F7F1E0B7B065099AC20F02B88C51DF82CEB677FAA664C180FB55A1971491EABE475D2B1F0CC33CF487065F7EEDD181C1C1248CBE7E99D7866E426600233C66345830DED4EB33128335653A8471D0FD5EE307EB8D79D88414D87355C4C26FB6F169C818DE64CD04A66C6303939214676CB2DAB71CD3557CB40B098514A4862B644EA58B2C1A6D0B5660D5E3C059FE1F5440571CB4750B5D03BD08FBDC387B172FD7D787AE7ABB0522721E6A6D18CD55039B80F672D1CC49DAB6EC29F9DF309148B1368F05CE77AA857AB086249C458A744F9E4262B8AEBA8342A48BB69A4D31EF6BCFD2EFEF18EDBF1CC8F9F9648250D8C8187B04C2472763C1AC43BDED93567521A298DB5556038C3904F5075270F75BCF373CCEB4FC4A00C943330C71CCCA72F2EB348A21090A2A58984625433D979C61967E09E7BEEC5E9A79F2A410B7A329EB98AA5A254CE9260CB08A0913723E4A231964B25385E1AD9B4872776BE86BBBEB305BBDE7C17438343B8E68ACFE1A62F7F01191B38B86F2F0606FA91CB17A4AF2E830695725905461A0C1E9085D1405F6F9FC0BF071E78100F3DF820F2F902E6CC9D239FCBEF64A09EB9D7E963F0FB78A6E824991C14FF16B2CD7FBF335494B5D72A858F56B974F250C7B48FE3BEE0440DEA783FD0189B8188DC89B9584965E28EFCA52FDD20DC40E673B880E9E98CC19A64A7596C84948469EC27952F953077702EDE1D29E1F16D3FC49F7EFA1C5C78DEA918CF1F9630FCACEE6E1C3E34896492C117B5581954A03193C4CAC008830FAFBCF2DF58BB76AD9457F03BD02B29E8A52846D1C0CD899C978E366EC7655046A32FF266ADA0C4119E144A92A81E29BA48C7A08E77F91EFBFA0FC3A008FFCC99838B9530D09CC3DE7E7B0F162D3A4322694B972E9585CCE23B2E66322EB8C88D77E07BD4D822A659C1ACDE34F2B922BC64065EA64B58E9138786117302342D1DA44866C40BF1A06F2A6269D024F88E8C8CE2A1873663EBD6ADAA5B87A7724F86246CCE4934C42891F5443DD2F4193AB641BDDFD944FF12B31294116BB506992AD91BBD54699B77A847C73692E3B9E2C806A592A212023673733C6FFA01D71AD8673C9539C4D3B0F8A0CE422E378E42A188CB2EBB4CCAEF59D14A0FC6454E8F6216B7A2F058F0D2349871A5519EF4E0D77C58415CBAB557EB25A4BC341A4D6A59D4D1A89791E9EA12952726A0693C4F3CF1041E7E780B7EF39BDF62CE9CD902EBF8FD4C148F9F436FC96B0DE4E3F306CACED0D0846F6308C553201F09C111DD5169831AEA971BC7438126619BAB872A7D67AB7B5DB16B1A23EBA2AB8E879AE9A953EC7106013299AC8657FC0CD512946A44528334457E7266BF83615C1862AE626FAB7A2C0628D881E2C61B6FC4B5D75E2B8B5A95DA2BF8C5FFB39933375AD562900B8B11375B04514A9502DC24CB3E14644B26C901A4E25043E01E85246FBDF5563CFFFCF352A43734345B6A99A49D8F7E44A15E34D012AED9E32AC66A6FECA21EB05A2D493D14ABAA45E7486A0555A986349433EA608CF54BC56E22DE24A493E03F5562B5061FDB3C8A40949E4F467B5802DDF150ED4D4ABB572983A2024F5A75B9601366A1CA283DF93FC623EAB5B8106828CCEFA81DDA176FB278F162DC7BEFBD58B870A1404043308D063C548F270BF51A4535C94C575EC4B6791E2B4F29AF78F4D14771F7DD77CBF364C6B36A99FA19C63B99FB8E265A4DC4D2246FFF5063633C14EFB15EAF4A1E8ADD50A4F2DFF0E5796F5A9759598A82126181A1126D5656A7944395DA9ABC8CBFC679866A60D1A2451DE5D8199C49B5C3C591CD2A4A8D08AD4838583A47877ADB33F891477CAB70A7353AF7524C4B9D09EEC20DA12A917CCAC670D4B4106E1DBB5B54ABE199467CAB88A128E9676E0EF438BCD6B01A5E7AE925AC5FBF5ECA2C4C289C1E8C1EF968858B518FF1871E07730FFCC93161D8FC8D37DE10D55EE5A1D85552C456948DA8AE0921FA8B251209A585A9145A448F5A156F692FAEE9F814E720ED7F70604035F45220710A1C319052BD563FA73F502ED76D735819FCBE122CF31AE940A7AA87758B07FD3A835995A14FD1459345192949D650D5287BAAE73424E1BBEBCA4B11F3D46A3D51E51AD38356F74BD081197DB7D17B93F7921B8B481EAAEF493901A520A5EFA57550D5C290FA3E8200A94C0ADD5D5D12E5AAD71BB271D1C8A4D58BA6D2FC3116520B4651E84555B3D2C0C9C6A3D8251736611A9597D8208E9A16ED3E4873DABC7933B66DDB26C18DF9F3E74BF4CE041978BFAC59521E2FEA9AB52C8376D7D1D07FD48BB5FB3D8E7D9D3ABFB26309C3FA070EEC158DC418FF264646F5592D4FCD79D69D82E47BD319598984B4F95156A68AD54472827850C437A49D71680C2289CB174AF8CF2C43418B262838456F40493B2B4F270B4D4B3C4B5302E966A02C4114639428B40C2721A6885329FD0B3DC41133D6066B5A1A4F99882965CA4A015FE087699DA00BE5B879880496169E0FAB958D41E8EA1EBD1768E3335DD3F53D4D81007A93D1DA1C72AF5A275E75B29076EC61819DD9D9A8CCF3873C271D7B1175AE38DA08700EA955C1490B5B95EA3994A3921899B22C85E4546353DD59C03408500B596080AC61E3315A06217FD57DA3A65671B6821BC62B857A666230DA03E94E7DB2D0229FAF3F4D9448A58FAB5E6BEABB2B63332EC32CE9D03B85CD97F5EB8C07112CDF52706A7D9E0ABE28B8D3F27C2D7D0DADFCA48D31F478467F2374FBBAF58F8609A173D65EDC18730B4AEBE96B4A9B2F65E8E1C61371EEDAF04DEAC2C863AB0C87BE27DD8645A9236964A1E7468DADF696A10FD57310DEAFDE4CCD39DA1CBCF5E6168A3486D2DC4A9DA4358B916A5DF95C1D190EF7CA087A08BB6928B4D2D2808CC81AEBF736F2CEF249E675F2B2C8CEAD5BCA180D94B075935E22613BA61029882A8C39EDE8038DD653D1ABAB25AEAC505474AB0BD779441DCC84C8C3EF48C8172EEA0874315ED7740D3109DE16D66EA1B62962B3D1FCF051CCFE4897B402F466973733A290A50101AD44730466E94BDFFF71FA5511B817B147ED65153C350A3611F711BE9D7A4E1BBE0178DA98A2D0751A1A9CF6FAF721641551550037DC2C14AC30703BF27FBD5AA6A70B5BBFB70CCC8050592A219E9FB234A64C994A37B6C2C0D1319EBAA3456721AA366C56B0DE94D416A11748EBC8FEBE0F8D6C906A14CC917FFA7868A39A324AD1D99E7AEFAD816F9D1A5A65F891EF13BD5003F1308364F63C3D6D475ACAD16F69E641CE501D87DF1981CE08CCCC08740C6A66C6B1F32E9D115000BFE3A13A2BA133023337021D839AB9B1ECBC53670454946FA609869D71ED8CC047750424A8315D5DF4A33A189DFBEE8CC0898E801894F4EB89482D9DE89B765EDF19818FE208901411BB72F9F2E6E3DBB6C9FD773CD547711974EE792646804C783EFE0F0A507581F460CF450000000049454E44AE426082 WHERE `app_id` = '8'; - --- for R1 Enhanced Notification ticket source from JIRA -INSERT INTO `ep_basic_auth_account` VALUES (1,'JIRA','jira','6APqvG4AU2rfLgCvMdySwQ==','Y'); - --- for setting up CLI and AAI-UI to be visible on Home page for demo account -INSERT INTO `fn_pers_user_app_sel` VALUES (1,1,7,'S'); -INSERT INTO `fn_pers_user_app_sel` VALUES (2,1,8,'S'); - -commit; diff --git a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql new file mode 100644 index 0000000000..781b04626c --- /dev/null +++ b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql @@ -0,0 +1,8 @@ +USE portal; +/* +Any updates required by OOM to the portaldb are made here. +1. split up SDC-FE and SDC-BE. Originally both FE and BE point to the same IP +while the OOM K8s version has these service split up. +*/ +UPDATE fn_app SET app_rest_endpoint = 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2' where app_name = 'SDC'; +UPDATE fn_app SET app_url = 'http://cli.api.simpledemo.onap.org:8080', app_type = 1 where app_name='CLI'; diff --git a/kubernetes/portal/charts/portal-mariadb/templates/configmap.yaml b/kubernetes/portal/charts/portal-mariadb/templates/configmap.yaml index fd42fd49ac..fcd325d804 100644 --- a/kubernetes/portal/charts/portal-mariadb/templates/configmap.yaml +++ b/kubernetes/portal/charts/portal-mariadb/templates/configmap.yaml @@ -15,8 +15,8 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "common.fullname" . }}-docker-entry-initd + name: {{ include "common.fullname" . }}-mariadb namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/mariadb/*").AsConfig . | indent 2 }} diff --git a/kubernetes/portal/charts/portal-mariadb/templates/deployment.yaml b/kubernetes/portal/charts/portal-mariadb/templates/deployment.yaml index fd5e524d33..bdb760d24d 100644 --- a/kubernetes/portal/charts/portal-mariadb/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-mariadb/templates/deployment.yaml @@ -52,7 +52,7 @@ spec: periodSeconds: {{ .Values.readiness.periodSeconds }} env: - name: MYSQL_HOST - value: "{{ .Values.service.name }}" + value: "{{ include "common.fullname" . }}" - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: @@ -64,9 +64,6 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true - - name: mariadb-docker-entrypoint-initdb - mountPath: /docker-entrypoint-initdb.d/zzz_apps_users_onboarding.sql - subPath: Apps_Users_OnBoarding_Script.sql resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -85,9 +82,6 @@ spec: {{- else }} emptyDir: {} {{- end }} - - name: mariadb-docker-entrypoint-initdb - configMap: - name: {{ include "common.fullname" . }}-docker-entry-initd - name: localtime hostPath: path: /etc/localtime diff --git a/kubernetes/portal/charts/portal-mariadb/templates/job.yaml b/kubernetes/portal/charts/portal-mariadb/templates/job.yaml new file mode 100644 index 0000000000..5dad1c0002 --- /dev/null +++ b/kubernetes/portal/charts/portal-mariadb/templates/job.yaml @@ -0,0 +1,90 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "common.fullname" . }}-config + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }}-job + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + template: + metadata: + labels: + app: {{ include "common.name" . }}-job + release: {{ .Release.Name }} + spec: + restartPolicy: Never + initContainers: + - name: {{ include "common.name" . }}-init-readiness + image: "{{ .Values.global.readinessRepository }}/{{ .Values.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: + - /root/ready.py + args: + - --container-name + - {{ include "common.name" . }} + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + containers: + - name: {{ include "common.name" . }}-job + image: "{{ .Values.global.readinessRepository }}/{{ .Values.mariadbInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + env: + - name: DB_HOST + value: "{{ include "common.fullname" . }}" + - name: DB_USER + value: {{ .Values.config.mariadbUser }} + - name: DB_PASS + valueFrom: + secretKeyRef: {name: {{ include "common.fullname" . }}, key: db-root-password} + - name: SQL_SRC_DIR + value: {{ .Values.config.sqlSourceDirectory }} + - name: {{ include "common.name" . }}-oom-update-job + image: "{{ .Values.global.readinessRepository }}/{{ .Values.mariadbInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + env: + - name: DB_HOST + value: "{{ include "common.fullname" . }}" + - name: DB_USER + value: {{ .Values.config.mariadbUser }} + - name: DB_PORT + value: "{{ .Values.service.internalPort }}" + - name: DB_PASS + valueFrom: + secretKeyRef: {name: {{ include "common.fullname" . }}, key: db-root-password} + command: + - /bin/sh + - -x + - -c + - "mysql -vv --user=$DB_USER --password=$DB_PASS --host=$DB_HOST --port=$DB_PORT < /tmp/oom_updates.sql" + volumeMounts: + - name: portal-mariadb-sql + mountPath: /tmp/oom_updates.sql + subPath: oom_updates.sql + volumes: + - name: portal-mariadb-sql + configMap: + name: {{ include "common.fullname" . }}-mariadb + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" + restartPolicy: Never
\ No newline at end of file diff --git a/kubernetes/portal/charts/portal-mariadb/values.yaml b/kubernetes/portal/charts/portal-mariadb/values.yaml index 629ec86c7f..c232e4ca4a 100644 --- a/kubernetes/portal/charts/portal-mariadb/values.yaml +++ b/kubernetes/portal/charts/portal-mariadb/values.yaml @@ -19,16 +19,23 @@ global: # global defaults nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== persistence: {} + readinessRepository: oomk8s # application image repository: nexus3.onap.org:10001 -image: onap/portal-db:latest +image: onap/portal-db:2.1-STAGING-latest pullPolicy: Always +readinessImage: "readiness-check:1.1.1" +mariadbInitImage: "mariadb-client-init:2.0.0" + # application configuration config: + mariadbUser: root mariadbRootPassword: Aa123456 + #The directory where sql files are found in the projects gerrit repo. + sqlSourceDirectory: portal/deliveries # default number of instances diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties index 742b5ea328..59d438a669 100644 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties @@ -14,7 +14,7 @@ music.serialize.compress = true music.atomic.get = false music.atomic.put = true -cassandra.host={{.Values.cassandra.service.name}}.{{.Release.Namespace}} -zookeeper.host={{.Values.zookeeper.service.name}}.{{.Release.Namespace}} +cassandra.host={{.Release.Name}}-{{.Values.cassandra.chart.name}}.{{.Release.Namespace}} +zookeeper.host={{.Release.Name}}-{{.Values.zookeeper.chart.name}}.{{.Release.Namespace}} cassandra.user={{.Values.cassandra.config.cassandraUsername}} cassandra.password={{.Values.cassandra.config.cassandraPassword}}
\ No newline at end of file diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties index 32dd1f9c2a..4b6f251e8b 100755 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties @@ -30,7 +30,7 @@ ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi ueb_listeners_enable = false # UEB Configuration -ueb_url_list = dmaap.{{.Release.Namespace}} +ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}} # ECOMP Portal listens on this UEB topic ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Replace these 3 default values with the ones for your specific App, diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties index 6b8e685fcd..6fbf5b750e 100755 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties @@ -24,7 +24,7 @@ decryption_key = AGLDdG4D04BKm2IxIWEr8o== ########################################################################## db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb://{{.Values.mariadb.service.name}}.{{.Release.Namespace}}:3306/ecomp_sdk +db.connectionURL = jdbc:mariadb://{{.Release.Name}}-{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/ecomp_sdk db.userName = root db.password = Aa123456 db.min_pool_size = 5 diff --git a/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml b/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml index 09f2e45a25..1c94c78bb4 100644 --- a/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml @@ -38,7 +38,7 @@ spec: - /root/ready.py args: - --container-name - - {{ .Values.mariadb.nameOverride }} + - {{ .Values.mariadb.chart.name }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-sdk/values.yaml b/kubernetes/portal/charts/portal-sdk/values.yaml index 778c855b7d..010b4c11bd 100644 --- a/kubernetes/portal/charts/portal-sdk/values.yaml +++ b/kubernetes/portal/charts/portal-sdk/values.yaml @@ -28,7 +28,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/portal-sdk:latest +image: onap/portal-sdk:2.1-STAGING-latest pullPolicy: Always # flag to enable debugging - application support required @@ -60,21 +60,23 @@ service: internalPort: 8080 mariadb: - nameOverride: portal-db - service: + chart: name: portal-db - +widget: + chart: + name: portal-widget cassandra: - service: + chart: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 - zookeeper: - service: - name: portal-zk - + chart: + name: portal-zookeeper +messageRouter: + chart: + name: message-router ingress: enabled: false diff --git a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties index 3f4f950a58..b7a20734c6 100644 --- a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties +++ b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties @@ -6,7 +6,7 @@ spring.http.multipart.max-request-size=128MB microservice.widget.location=/tmp ## App DB Properties -spring.datasource.url=jdbc:mysql://{{.Values.mariadb.service.name}}.{{include "common.namespace" .}}:3306/portal +spring.datasource.url=jdbc:mysql://{{.Release.Name}}-{{.Values.mariadb.chart.name}}.{{include "common.namespace" .}}:3306/portal spring.datasource.username=root spring.datasource.password=Aa123456 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect diff --git a/kubernetes/portal/charts/portal-widget/templates/deployment.yaml b/kubernetes/portal/charts/portal-widget/templates/deployment.yaml index 0fb3c10384..bff7924e29 100644 --- a/kubernetes/portal/charts/portal-widget/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-widget/templates/deployment.yaml @@ -38,7 +38,7 @@ spec: - /root/ready.py args: - --container-name - - {{ .Values.mariadb.nameOverride }} + - {{ .Values.mariadb.chart.name }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-widget/values.yaml b/kubernetes/portal/charts/portal-widget/values.yaml index e2d1b915f4..706dc2f74f 100644 --- a/kubernetes/portal/charts/portal-widget/values.yaml +++ b/kubernetes/portal/charts/portal-widget/values.yaml @@ -29,7 +29,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/portal-wms:latest +image: onap/portal-wms:2.1-STAGING-latest pullPolicy: Always # flag to enable debugging - application support required @@ -55,8 +55,7 @@ readiness: periodSeconds: 10 mariadb: - nameOverride: portal-db - service: + chart: name: portal-db service: diff --git a/kubernetes/portal/docker/init/mariadb-client/Dockerfile b/kubernetes/portal/docker/init/mariadb-client/Dockerfile index 3089bafcfd..009f2fa757 100644 --- a/kubernetes/portal/docker/init/mariadb-client/Dockerfile +++ b/kubernetes/portal/docker/init/mariadb-client/Dockerfile @@ -1,11 +1,40 @@ -FROM ubuntu:16.04 +FROM boxfuse/flyway:5.0.7-alpine +ARG branch=master ENV no_proxy "localhost,127.0.0.1,.cluster.local,$KUBERNETES_SERVICE_HOST" # Setup Corporate proxy ENV https_proxy ${HTTP_PROXY} ENV http_proxy ${HTTPS_PROXY} -RUN apt-get update -RUN apt-get install -y mariadb-client-10.0 +RUN apk add --update \ + mariadb-client=10.1.28-r1 \ + git \ + && rm -rf /var/cache/apk/* -VOLUME /portal-mysql +ENV so_branch=$branch +#ENV policy_branch: $branch +ENV portal_branch=$branch +#ENV sdnc_branch: $branch +#ENV vid_branch: $branch +#ENV clamp_branch: $branch + +#ENV appc_repo: http://gerrit.onap.org/r/appc/deployment.git +ENV so_repo=http://gerrit.onap.org/r/so/docker-config.git +#ENV policy_repo: http://gerrit.onap.org/r/policy/docker.git +ENV portal_repo=http://gerrit.onap.org/r/portal.git +#ENV sdnc_repo: http://gerrit.onap.org/r/sdnc/oam.git +#ENV vid_repo: http://gerrit.onap.org/r/vid.git +#ENV clamp_repo: http://gerrit.onap.org/r/clamp.git + +RUN mkdir -p /onap-sources +WORKDIR /onap-sources + +RUN git clone -b $branch $portal_repo && cd portal && git checkout HEAD +RUN git clone -b $branch $so_repo && cd docker-config && git checkout HEAD + +VOLUME /onap-sources + +COPY db_migrate.sh /root + +RUN chmod a+x /root/db_migrate.sh +ENTRYPOINT /root/db_migrate.sh diff --git a/kubernetes/portal/docker/init/mariadb-client/db_migrate.sh b/kubernetes/portal/docker/init/mariadb-client/db_migrate.sh new file mode 100644 index 0000000000..32a634a9e5 --- /dev/null +++ b/kubernetes/portal/docker/init/mariadb-client/db_migrate.sh @@ -0,0 +1,23 @@ +#!/bin/sh -x +SQL_DEST_DIR=${SQL_DEST_DIR:-/tmp/sql} +DB_PORT=${DB_PORT:-3306} + +[[ -z "$SQL_SRC_DIR" ]] && { echo "Error: SQL_SRC_DIR must be provided as an environment variable"; exit 1; } +[[ -z "$DB_USER" ]] && { echo "Error: DB_USER must be provided as an environment variable"; exit 1; } +[[ -z "$DB_PASS" ]] && { echo "Error: DB_PASS must be provided as an environment variable"; exit 1; } +[[ -z "$DB_HOST" ]] && { echo "Error: DB_HOST must be provided as an environment variable"; exit 1; } + +mkdir -p $SQL_DEST_DIR + +#Find all sql files and copy them to the destination directory +find "/onap-sources/$SQL_SRC_DIR" -type f -iname "*.sql" | awk -v dest="$SQL_DEST_DIR" '{n=split($1,a,"/"); system(sprintf( "cp %s %s", $1, dest"/"a[n])) }' + + +#Not needed right now? +#--database=$DB_NAME + +#--force to deal with duplicate records in absense of "insert ignore" +##ERROR 1062 (23000) at line 382: Duplicate entry '2' for key 'PRIMARY' + +cd $SQL_DEST_DIR +cat *.sql | mysql -vv --user=$DB_USER --password=$DB_PASS --host=$DB_HOST --port=$DB_PORT --force diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml index 5ec23e10d1..e22b3f9669 100644 --- a/kubernetes/portal/values.yaml +++ b/kubernetes/portal/values.yaml @@ -21,5 +21,23 @@ config: portal-mariadb: nameOverride: portal-db - service: - name: portal-db
\ No newline at end of file + +mariadb: + chart: + name: portal-db +widget: + chart: + name: portal-widget +cassandra: + chart: + name: portal-cassandra + config: + cassandraUsername: root + cassandraPassword: Aa123456 +zookeeper: + chart: + name: portal-zookeeper + +messageRouter: + chart: + name: message-router
\ No newline at end of file diff --git a/kubernetes/robot/ete-k8s.sh b/kubernetes/robot/ete-k8s.sh index 9810ac236e..71e2027e4a 100755 --- a/kubernetes/robot/ete-k8s.sh +++ b/kubernetes/robot/ete-k8s.sh @@ -6,7 +6,7 @@ # Note: Do not run multiple concurrent ete.sh as the --display is not parameterized and tests will collide # if [ "$1" == "" ] || [ "$2" == "" ]; then - echo "Usage: ete.sh [namespace] [ health | ete | closedloop | instantiate | distribute ]" + echo "Usage: ete-k8s.sh [namespace] [ health | ete | closedloop | instantiate | distribute ]" exit fi diff --git a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py index 7900eac071..c62c4402b7 100755 --- a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py @@ -25,7 +25,7 @@ GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "{{ .Values.openStackTenantId }}" GLOBAL_INJECTED_OPENSTACK_USERNAME = "{{ .Values.openStackUserName }}" GLOBAL_INJECTED_POLICY_IP_ADDR = "pdp.{{include "common.namespace" .}}" GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "{{.Release.Name}}-drools.{{include "common.namespace" .}}" -GLOBAL_INJECTED_PORTAL_IP_ADDR = "{{.Release.Name}}-portalapps.{{include "common.namespace" .}}" +GLOBAL_INJECTED_PORTAL_IP_ADDR = "{{.Release.Name}}-portal-app.{{include "common.namespace" .}}" GLOBAL_INJECTED_REGION = "{{ .Values.openStackRegion }}" GLOBAL_INJECTED_REMOTE_REPO = "http://gerrit.onap.org/r/testsuite/properties.git" GLOBAL_INJECTED_SDC_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}" diff --git a/kubernetes/sdc/charts/sdc-wfd/values.yaml b/kubernetes/sdc/charts/sdc-wfd/values.yaml index 507d7a34f7..d678f5d64b 100644 --- a/kubernetes/sdc/charts/sdc-wfd/values.yaml +++ b/kubernetes/sdc/charts/sdc-wfd/values.yaml @@ -23,7 +23,7 @@ global: ################################################################# # application image repository: nexus3.onap.org:10001 -image: onap/sdc/sdc-workflow-designer:1.1.0-STAGING-latest +image: onap/sdc/sdc-workflow-designer:1.1.0-SNAPSHOT-STAGING-latest pullPolicy: Always # flag to enable debugging - application support required diff --git a/kubernetes/sdnc/resources/config/bin/installSdncDb.sh b/kubernetes/sdnc/resources/config/bin/installSdncDb.sh index f2c133cdc1..e574bd7aec 100644 --- a/kubernetes/sdnc/resources/config/bin/installSdncDb.sh +++ b/kubernetes/sdnc/resources/config/bin/installSdncDb.sh @@ -22,7 +22,8 @@ ### SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} -MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} +MYSQL_HOST=${MYSQL_HOST:-{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}} +MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}} SDNC_DB_USER=${SDNC_DB_USER:-sdnctl} SDNC_DB_PASSWD=${SDNC_DB_PASSWD:-gamma} @@ -30,7 +31,7 @@ SDNC_DB_DATABASE=${SDN_DB_DATABASE:-sdnctl} # Create tablespace and user account -mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} mysql <<-END +mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWD} mysql <<-END CREATE DATABASE ${SDNC_DB_DATABASE}; CREATE USER '${SDNC_DB_USER}'@'localhost' IDENTIFIED BY '${SDNC_DB_PASSWD}'; CREATE USER '${SDNC_DB_USER}'@'%' IDENTIFIED BY '${SDNC_DB_PASSWD}'; @@ -42,12 +43,12 @@ END # load schema if [ -f ${SDNC_HOME}/data/sdnctl.dump ] then - mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} sdnctl < ${SDNC_HOME}/data/sdnctl.dump + mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWD} sdnctl < ${SDNC_HOME}/data/sdnctl.dump fi for datafile in ${SDNC_HOME}/data/*.data.dump do - mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} sdnctl < $datafile + mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWD} sdnctl < $datafile done # Create VNIs 100-199 diff --git a/kubernetes/sdnc/resources/config/bin/startODL.sh b/kubernetes/sdnc/resources/config/bin/startODL.sh index ee8106ccfe..0c41d3e3e0 100755 --- a/kubernetes/sdnc/resources/config/bin/startODL.sh +++ b/kubernetes/sdnc/resources/config/bin/startODL.sh @@ -27,8 +27,8 @@ function enable_odl_cluster(){ fi echo "Installing Opendaylight cluster features" - ${ODL_HOME}/bin/client -u karaf feature:install odl-mdsal-clustering - ${ODL_HOME}/bin/client -u karaf feature:install odl-jolokia + ${ODL_HOME}/bin/client feature:install odl-mdsal-clustering + ${ODL_HOME}/bin/client feature:install odl-jolokia echo "Update cluster information statically" hm=$(hostname) @@ -52,12 +52,13 @@ SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} SLEEP_TIME=${SLEEP_TIME:-120} MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}} ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false} +MYSQL_HOST=${MYSQL_HOST:-{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}} # # Wait for database to init properly # echo "Waiting for mysql" -until mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p{{.Values.config.dbRootPassword}} mysql &> /dev/null +until mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWD} mysql &> /dev/null do printf "." sleep 1 @@ -86,6 +87,10 @@ then echo "Restarting OpenDaylight" ${ODL_HOME}/bin/stop + + echo "Waiting 60 seconds for OpenDaylight stop to complete" + sleep 60 + echo "Installed at `date`" > ${SDNC_HOME}/.installed fi diff --git a/kubernetes/sdnc/resources/config/conf/dblib.properties b/kubernetes/sdnc/resources/config/conf/dblib.properties index 4edae2b46c..9faf9e2482 100644 --- a/kubernetes/sdnc/resources/config/conf/dblib.properties +++ b/kubernetes/sdnc/resources/config/conf/dblib.properties @@ -23,7 +23,7 @@ org.onap.ccsdk.sli.dbtype=jdbc org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 -org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver org.onap.ccsdk.sli.jdbc.database=sdnctl org.onap.ccsdk.sli.jdbc.user=sdnctl diff --git a/kubernetes/sdnc/resources/config/conf/svclogic.properties b/kubernetes/sdnc/resources/config/conf/svclogic.properties index 44ae32f9cc..dbbbb92b41 100644 --- a/kubernetes/sdnc/resources/config/conf/svclogic.properties +++ b/kubernetes/sdnc/resources/config/conf/svclogic.properties @@ -20,7 +20,7 @@ ### org.onap.ccsdk.sli.dbtype = jdbc -org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/sdnctl +org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl org.onap.ccsdk.sli.jdbc.database = sdnctl org.onap.ccsdk.sli.jdbc.user = sdnctl org.onap.ccsdk.sli.jdbc.password = gamma diff --git a/kubernetes/sdnc/templates/statefulset.yaml b/kubernetes/sdnc/templates/statefulset.yaml index 8b4055e1df..fd4f81bd8f 100644 --- a/kubernetes/sdnc/templates/statefulset.yaml +++ b/kubernetes/sdnc/templates/statefulset.yaml @@ -76,7 +76,7 @@ spec: - name: SDNC_REPLICAS value: "{{ .Values.replicaCount }}" - name: MYSQL_HOST - value: "{{.Values.mysql.service.name}}.{{.Release.Namespace}}" + value: "{{.Release.Name}}-{{.Values.mysql.nameOverride}}-0.{{.Values.mysql.service.name}}.{{.Release.Namespace}}" volumeMounts: - mountPath: /etc/localtime name: localtime diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml index 38d6424755..e0bfbed1b1 100644 --- a/kubernetes/sdnc/values.yaml +++ b/kubernetes/sdnc/values.yaml @@ -74,6 +74,7 @@ mysql: nameOverride: sdnc-db service: name: sdnc-dbhost + internalPort: 3306 nfsprovisionerPrefix: sdnc sdnctlPrefix: sdnc persistence: diff --git a/kubernetes/uui/templates/service.yaml b/kubernetes/uui/templates/service.yaml index 4570c99473..9e94784676 100644 --- a/kubernetes/uui/templates/service.yaml +++ b/kubernetes/uui/templates/service.yaml @@ -30,7 +30,7 @@ metadata: "url": "/usecase-ui", "path":"/iui/usecaseui", "protocol": "UI" - "port": "8080", + "port": "{{ .Values.service.internalPort }}", "visualRange":"1|0" } ]' diff --git a/kubernetes/vfc/Chart.yaml b/kubernetes/vfc/Chart.yaml index 2554d16ce5..a6a6065802 100644 --- a/kubernetes/vfc/Chart.yaml +++ b/kubernetes/vfc/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: A Helm chart for Kubernetes +description: ONAP Virtual Function Controller (VF-C) name: vfc -version: 0.1.0 +version: 2.0.0 diff --git a/kubernetes/vfc/charts/vfc-catalog/.helmignore b/kubernetes/vfc/charts/vfc-catalog/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-catalog/Chart.yaml b/kubernetes/vfc/charts/vfc-catalog/Chart.yaml new file mode 100644 index 0000000000..f90ad5b72e --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Catalog +name: vfc-catalog +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-catalog/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-catalog/resources/config/logging/log.yml new file mode 100644 index 0000000000..2daea32cae --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + catalog: + handlers: [cataloglocal_handler, catalog_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + cataloglocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_catalog.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + catalog_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/catalog/runtime_catalog.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/deployment.yaml new file mode 100644 index 0000000000..084c320e31 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/catalog/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/service.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/service.yaml new file mode 100644 index 0000000000..7d3390e761 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "catalog", + "version": "v1", + "url": "/api/catalog/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-catalog/values.yaml b/kubernetes/vfc/charts/vfc-catalog/values.yaml new file mode 100644 index 0000000000..fe84a68871 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-catalog/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/catalog:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-catalog + externalPort: 8806 + internalPort: 8806 +# nodePort: 30806 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-ems-driver/.helmignore b/kubernetes/vfc/charts/vfc-ems-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-ems-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-ems-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-ems-driver/Chart.yaml new file mode 100644 index 0000000000..1bd751fa77 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-ems-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - EMS Driver +name: vfc-ems-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-ems-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-ems-driver/templates/deployment.yaml new file mode 100644 index 0000000000..ba33ec587d --- /dev/null +++ b/kubernetes/vfc/charts/vfc-ems-driver/templates/deployment.yaml @@ -0,0 +1,83 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-ems-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-ems-driver/templates/service.yaml new file mode 100644 index 0000000000..16eee99872 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-ems-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "emsdriver", + "version": "v1", + "url": "/api/emsdriver/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-ems-driver/values.yaml b/kubernetes/vfc/charts/vfc-ems-driver/values.yaml new file mode 100644 index 0000000000..d73a72b17b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-ems-driver/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/emsdriver:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-ems-driver + externalPort: 8206 + internalPort: 8206 +# nodePort: 30296 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/.helmignore b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/Chart.yaml new file mode 100644 index 0000000000..c472770b31 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Generic VNFM Driver +name: vfc-generic-vnfm-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/resources/config/logging/log.yml new file mode 100644 index 0000000000..123bb298ab --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + driver: + handlers: [gvnfmdriverlocal_handler, gvnfmdriver_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + gvnfmdriverlocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_gvnfmdriver.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + gvnfmdriver_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/gvnfmdriver/runtime_gvnfmdriver.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/deployment.yaml new file mode 100644 index 0000000000..825bdcec63 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/gvnfmdriver/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/service.yaml new file mode 100644 index 0000000000..0e2f1a12e7 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "gvnfmdriver", + "version": "v1", + "url": "/api/gvnfmdriver/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml new file mode 100644 index 0000000000..48b039c2a4 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/gvnfmdriver:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-generic-vnfm-driver + externalPort: 8484 + internalPort: 8484 +# nodePort: 30484 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/.helmignore b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/Chart.yaml new file mode 100644 index 0000000000..550401c6ba --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Huawei VNFM Driver +name: vfc-huawei-vnfm-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/resources/config/logging/log4j.properties b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/resources/config/logging/log4j.properties new file mode 100644 index 0000000000..635bcc51ea --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/resources/config/logging/log4j.properties @@ -0,0 +1,29 @@ +############################################################################### +# Copyright 2016, Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +log4j.rootLogger=INFO,root +log4j.appender.root.Append=true + +#Log Directory +logDir=/var/log/onap +componentName=vfc +subComponentName=huaweivnfmdriver +log4j.appender.root.File=${logDir}/${componentName}/${subComponentName}/vnfmadapterservice.log + +log4j.appender.root.layout.ConversionPattern=%d %-5p [%t][%X{moduleID}][%C %L] %m%n +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.MaxBackupIndex=50 +log4j.appender.root.MaxFileSize=20MB +log4j.appender.root=org.apache.log4j.RollingFileAppender
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/deployment.yaml new file mode 100644 index 0000000000..eed1906d26 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/hwvnfmdriver/config/log4j.properties + subPath: log4j.properties + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/service.yaml new file mode 100644 index 0000000000..60bad3ed21 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/templates/service.yaml @@ -0,0 +1,58 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "huaweivnfmdriver", + "version": "v1", + "url": "/api/huaweivnfmdriver/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - name: {{ .Values.service.name }} + port: {{ .Values.service.internalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + - name: {{ .Values.service.name }}2 + port: {{ .Values.service.internalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name }}2 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml new file mode 100644 index 0000000000..3b3f1c6da2 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml @@ -0,0 +1,88 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/nfvo/svnfm/huawei:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-huawei-vnfm-driver + externalPort: 8482 + internalPort: 8482 + externalPort2: 8483 + internalPort2: 8483 +# nodePort: 30482 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/.helmignore b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/Chart.yaml new file mode 100644 index 0000000000..d0d74071ad --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Juju VNFM Driver +name: vfc-juju-vnfm-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/resources/config/logging/log4j.properties b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/resources/config/logging/log4j.properties new file mode 100644 index 0000000000..6c1dab20c4 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/resources/config/logging/log4j.properties @@ -0,0 +1,34 @@ +############################################################################### +# Copyright 2016 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +log4j.rootLogger=INFO,root +log4j.logger.org.openo.nfvo=DEBUG,stdout +log4j.appender.root.Append=true + +#Log Directory +logDir=/var/log/onap +componentName=vfc +subComponentName=jujudriver +log4j.appender.root.File=${logDir}/${componentName}/${subComponentName}/jujuvnfmadapterservice.log + +log4j.appender.root.layout.ConversionPattern=%d %-5p [%t][%X{moduleID}][%C %L] %m%n +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.MaxBackupIndex=50 +log4j.appender.root.MaxFileSize=20MB +log4j.appender.root=org.apache.log4j.RollingFileAppender + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t][%X{moduleID}][%C %L] %m%n
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/deployment.yaml new file mode 100644 index 0000000000..1d1a5d7702 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName}}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/jujudriver/config/log4j.properties + subPath: log4j.properties + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/service.yaml new file mode 100644 index 0000000000..3376ea9e91 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "jujuvnfmdriver", + "version": "v1", + "url": "/api/jujuvnfmdriver/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml new file mode 100644 index 0000000000..edcce9548e --- /dev/null +++ b/kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/jujudriver:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-juju-vnfm-driver + externalPort: 8483 + internalPort: 8483 +# nodePort: 30483 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-multivim-proxy/.helmignore b/kubernetes/vfc/charts/vfc-multivim-proxy/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-multivim-proxy/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-multivim-proxy/Chart.yaml b/kubernetes/vfc/charts/vfc-multivim-proxy/Chart.yaml new file mode 100644 index 0000000000..3ceafe924c --- /dev/null +++ b/kubernetes/vfc/charts/vfc-multivim-proxy/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - MultiVIM Proxy +name: vfc-multivim-proxy +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-multivim-proxy/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-multivim-proxy/templates/deployment.yaml new file mode 100644 index 0000000000..ba33ec587d --- /dev/null +++ b/kubernetes/vfc/charts/vfc-multivim-proxy/templates/deployment.yaml @@ -0,0 +1,83 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-multivim-proxy/templates/service.yaml b/kubernetes/vfc/charts/vfc-multivim-proxy/templates/service.yaml new file mode 100644 index 0000000000..268cf0c768 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-multivim-proxy/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "multivimproxy", + "version": "v1", + "url": "/api/multivimproxy/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml b/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml new file mode 100644 index 0000000000..943b051f8c --- /dev/null +++ b/kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml @@ -0,0 +1,85 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/multivimproxy:1.0.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-multivim-proxy + externalPort: 8481 + internalPort: 8481 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/.helmignore b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/Chart.yaml new file mode 100644 index 0000000000..dbed709128 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Nokia V2VNFM Driver +name: vfc-nokia-v2vnfm-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/deployment.yaml new file mode 100644 index 0000000000..ba33ec587d --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/deployment.yaml @@ -0,0 +1,83 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/service.yaml new file mode 100644 index 0000000000..b722e2471e --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "NokiaSVNFM", + "version": "v1", + "url": "/api/NokiaSVNFM/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml new file mode 100644 index 0000000000..e6fe78b610 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml @@ -0,0 +1,87 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/nfvo/svnfm/nokiav2:1.1.0-STAGING-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +# Example: +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-nokia-v2vnfm-driver + externalPort: 8089 + internalPort: 8089 +# nodePort: 13 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/.helmignore b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/Chart.yaml new file mode 100644 index 0000000000..eb3a6ce3e2 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Nokia VNFM Driver +name: vfc-nokia-vnfm-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/resources/config/logging/logback.xml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/resources/config/logging/logback.xml new file mode 100644 index 0000000000..747c6b6551 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/resources/config/logging/logback.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <include resource="org/springframework/boot/logging/logback/defaults.xml"/> + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern> + <charset>UTF-8</charset> + </encoder> + </appender> + <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>/var/log/onap/vfc/svnfm/nokiavnfmdriver.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>/var/log/onap/vfc/svnfm/nokiavnfmdriver.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>10MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{req.method} %X{req.remoteHost} %X{req.requestURI} [%t] %-5level %logger{50} %line - %m%n</pattern> + <charset>UTF-8</charset> + </encoder> + </appender> + <root level="INFO"> + <appender-ref ref="CONSOLE"></appender-ref> + <appender-ref ref="FILE"></appender-ref> + </root> +</configuration>
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/deployment.yaml new file mode 100644 index 0000000000..9c4437ee0c --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logback + mountPath: /opt/vfc/nokiavnfmdriver/config/logback.xml + subPath: logback.xml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logback + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/service.yaml new file mode 100644 index 0000000000..e55b1b2fb0 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "nokiavnfmdriver", + "version": "v1", + "url": "/api/nokiavnfmdriver/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml new file mode 100644 index 0000000000..4fccdb2c5b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nokia-vnfm-driver/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/nfvo/svnfm/nokia:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-nokia-vnfm-driver + externalPort: 8486 + internalPort: 8486 +# nodePort: 12 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-nslcm/.helmignore b/kubernetes/vfc/charts/vfc-nslcm/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-nslcm/Chart.yaml b/kubernetes/vfc/charts/vfc-nslcm/Chart.yaml new file mode 100644 index 0000000000..362857333a --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - NS Life Cycle Management +name: vfc-nslcm +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nslcm/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-nslcm/resources/config/logging/log.yml new file mode 100644 index 0000000000..4ae7ab16a8 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + nslcm: + handlers: [nslcmlocal_handler, nslcm_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + nslcmlocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_nslcm.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + nslcm_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/nslcm/runtime_nslcm.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-nslcm/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-nslcm/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nslcm/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-nslcm/templates/deployment.yaml new file mode 100644 index 0000000000..b2481c8f33 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/nslcm/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-nslcm/templates/service.yaml b/kubernetes/vfc/charts/vfc-nslcm/templates/service.yaml new file mode 100644 index 0000000000..c854684cea --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "nslcm", + "version": "v1", + "url": "/api/nslcm/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-nslcm/values.yaml b/kubernetes/vfc/charts/vfc-nslcm/values.yaml new file mode 100644 index 0000000000..a14b06ec26 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-nslcm/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/nslcm:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-nslcm + externalPort: 8403 + internalPort: 8403 +# nodePort: 30403 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-resmgr/.helmignore b/kubernetes/vfc/charts/vfc-resmgr/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-resmgr/Chart.yaml b/kubernetes/vfc/charts/vfc-resmgr/Chart.yaml new file mode 100644 index 0000000000..604c6b64cf --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Resource Manager +name: vfc-resmgr +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-resmgr/resources/config/logging/log4j.properties b/kubernetes/vfc/charts/vfc-resmgr/resources/config/logging/log4j.properties new file mode 100644 index 0000000000..cde79b74d2 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/resources/config/logging/log4j.properties @@ -0,0 +1,29 @@ +############################################################################### +# Copyright 2016, Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +log4j.rootLogger=INFO,root +log4j.appender.root.Append=true + +#Log Directory +logDir=/var/log/onap +componentName=vfc +subComponentName=resmanagement +log4j.appender.root.File=${logDir}/${componentName}/${subComponentName}/resmanagement.log + +log4j.appender.root.layout.ConversionPattern=%d %-5p [%t][%X{moduleID}][%C %L] %m%n +log4j.appender.root.layout=org.apache.log4j.PatternLayout +log4j.appender.root.MaxBackupIndex=50 +log4j.appender.root.MaxFileSize=20MB +log4j.appender.root=org.apache.log4j.RollingFileAppender
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-resmgr/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-resmgr/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-resmgr/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-resmgr/templates/deployment.yaml new file mode 100644 index 0000000000..27d5fcdd43 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/resmgr/config/log4j.properties + subPath: log4j.properties + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-resmgr/templates/service.yaml b/kubernetes/vfc/charts/vfc-resmgr/templates/service.yaml new file mode 100644 index 0000000000..993d4787e9 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "resmgr", + "version": "v1", + "url": "/api/resmgr/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-resmgr/values.yaml b/kubernetes/vfc/charts/vfc-resmgr/values.yaml new file mode 100644 index 0000000000..c128cb08d4 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-resmgr/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/resmanagement:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-resmgr + externalPort: 8480 + internalPort: 8480 +# nodePort: 30480 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-vnflcm/.helmignore b/kubernetes/vfc/charts/vfc-vnflcm/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-vnflcm/Chart.yaml b/kubernetes/vfc/charts/vfc-vnflcm/Chart.yaml new file mode 100644 index 0000000000..507d4e6b35 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - VNF Life Cycle Management +name: vfc-vnflcm +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnflcm/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-vnflcm/resources/config/logging/log.yml new file mode 100644 index 0000000000..4af8faa40f --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + mgr: + handlers: [vnfmgrlocal_handler, vnfmgr_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + vnfmgrlocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_mgr.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + vnfmgr_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/gvnfm-vnfmgr/runtime_mgr.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-vnflcm/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-vnflcm/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnflcm/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-vnflcm/templates/deployment.yaml new file mode 100644 index 0000000000..ccea328c0c --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/gvnfm-vnflcm/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-vnflcm/templates/service.yaml b/kubernetes/vfc/charts/vfc-vnflcm/templates/service.yaml new file mode 100644 index 0000000000..ad4f716781 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "vnflcm", + "version": "v1", + "url": "/api/vnflcm/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnflcm/values.yaml b/kubernetes/vfc/charts/vfc-vnflcm/values.yaml new file mode 100644 index 0000000000..a3f35d4c03 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnflcm/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/vnflcm:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-vnflcm + externalPort: 8801 + internalPort: 8801 +# nodePort: 30801 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/.helmignore b/kubernetes/vfc/charts/vfc-vnfmgr/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/Chart.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/Chart.yaml new file mode 100644 index 0000000000..b70e11c762 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - VNF Manager +name: vfc-vnfmgr +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-vnfmgr/resources/config/logging/log.yml new file mode 100644 index 0000000000..4af8faa40f --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + mgr: + handlers: [vnfmgrlocal_handler, vnfmgr_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + vnfmgrlocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_mgr.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + vnfmgr_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/gvnfm-vnfmgr/runtime_mgr.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/templates/deployment.yaml new file mode 100644 index 0000000000..9d31443088 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/gvnfm-vnfmgr/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/templates/service.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/templates/service.yaml new file mode 100644 index 0000000000..df6ca313e4 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "vnfmgr", + "version": "v1", + "url": "/api/vnfmgr/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml new file mode 100644 index 0000000000..96e6b0d2a2 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfmgr/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/vnfmgr:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-vnfmgr + externalPort: 8803 + internalPort: 8803 +# nodePort: 30803 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-vnfres/.helmignore b/kubernetes/vfc/charts/vfc-vnfres/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-vnfres/Chart.yaml b/kubernetes/vfc/charts/vfc-vnfres/Chart.yaml new file mode 100644 index 0000000000..5fd923bcd7 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - VNF Resource Manager +name: vfc-vnfres +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnfres/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-vnfres/resources/config/logging/log.yml new file mode 100644 index 0000000000..c4cc1e3072 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + lcm: + handlers: [vnflcmlocal_handler, vnflcm_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + vnflcmlocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_lcm.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + vnflcm_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/gvnfm-vnflcm/runtime_lcm.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-vnfres/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-vnfres/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnfres/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-vnfres/templates/deployment.yaml new file mode 100644 index 0000000000..52e807abe5 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/gvnfm-vnfres/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-vnfres/templates/service.yaml b/kubernetes/vfc/charts/vfc-vnfres/templates/service.yaml new file mode 100644 index 0000000000..d3a3dc980c --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "vnfres", + "version": "v1", + "url": "/api/vnfres/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-vnfres/values.yaml b/kubernetes/vfc/charts/vfc-vnfres/values.yaml new file mode 100644 index 0000000000..3009f5f759 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-vnfres/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/vnfres:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-vnfres + externalPort: 8802 + internalPort: 8802 +# nodePort: 30802 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/.helmignore b/kubernetes/vfc/charts/vfc-workflow-engine/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow-engine/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/Chart.yaml b/kubernetes/vfc/charts/vfc-workflow-engine/Chart.yaml new file mode 100644 index 0000000000..913778b689 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow-engine/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Workflow Engine +name: vfc-workflow-engine +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-workflow-engine/templates/deployment.yaml new file mode 100644 index 0000000000..adb077a518 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow-engine/templates/deployment.yaml @@ -0,0 +1,91 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: SERVICE_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: SERVICE_PORT + value: "{{ .Values.config.workflowPort }}" + - name: OPENPALETTE_MSB_IP + value: "{{ .Values.global.config.msbServiceName }}" + - name: OPENPALETTE_MSB_PORT + value: "{{ .Values.global.config.msbPort | default 80 }}" + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml b/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml new file mode 100644 index 0000000000..392cb13302 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow-engine/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "workflow", + "version": "v1", + "url": "/activiti-rest", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml b/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml new file mode 100644 index 0000000000..876547c8c4 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow-engine/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/wfengine-activiti:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-workflow-engine + externalPort: 8080 + internalPort: 8080 +# nodePort: 30807 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-workflow/.helmignore b/kubernetes/vfc/charts/vfc-workflow/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-workflow/Chart.yaml b/kubernetes/vfc/charts/vfc-workflow/Chart.yaml new file mode 100644 index 0000000000..a711c50671 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - Workflow +name: vfc-workflow +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-workflow/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-workflow/templates/deployment.yaml new file mode 100644 index 0000000000..e2b3d0bc96 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow/templates/deployment.yaml @@ -0,0 +1,91 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: SERVICE_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: SERVICE_PORT + value: "{{ .Values.service.externalPort }}" + - name: OPENPALETTE_MSB_IP + value: "{{ .Values.global.config.msbServiceName }}" + - name: OPENPALETTE_MSB_PORT + value: "{{ .Values.global.config.msbPort | default 80 }}" + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-workflow/templates/service.yaml b/kubernetes/vfc/charts/vfc-workflow/templates/service.yaml new file mode 100644 index 0000000000..73e2c2c5b9 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "workflow", + "version": "v1", + "url": "/api/workflow/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-workflow/values.yaml b/kubernetes/vfc/charts/vfc-workflow/values.yaml new file mode 100644 index 0000000000..028155eb32 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-workflow/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/wfengine-mgrservice:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-workflow + externalPort: 10550 + internalPort: 10550 +# nodePort: 30805 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/.helmignore b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/Chart.yaml new file mode 100644 index 0000000000..f1d71da2d2 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - ZTE SDNC Driver +name: vfc-zte-sdnc-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/templates/deployment.yaml new file mode 100644 index 0000000000..ba33ec587d --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/templates/deployment.yaml @@ -0,0 +1,83 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/templates/service.yaml new file mode 100644 index 0000000000..532f648716 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "ztesdncdriver", + "version": "v1", + "url": "/api/ztesdncdriver/v1", + "protocol": "REST", + "port": "{{.Values.service.externalPort}}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml new file mode 100644 index 0000000000..41482bc9f0 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml @@ -0,0 +1,86 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/ztesdncdriver:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-zte-sdnc-driver + externalPort: 8411 + internalPort: 8411 +# nodePort: 30411 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/.helmignore b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/Chart.yaml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/Chart.yaml new file mode 100644 index 0000000000..b4e9f84e3d --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: ONAP VFC - ZTE VNFM Driver +name: vfc-zte-vnfm-driver +version: 2.0.0
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/resources/config/logging/log.yml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/resources/config/logging/log.yml new file mode 100644 index 0000000000..a0bf170fe6 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/resources/config/logging/log.yml @@ -0,0 +1,50 @@ +version: 1 +disable_existing_loggers: False + +loggers: + ztevnfmdriver: + handlers: [ztevnfmdriverlocal_handler, ztevnfmdriver_handler] + level: "DEBUG" + propagate: False + django: + handlers: [django_handler] + level: "DEBUG" + propagate: False +handlers: + ztevnfmdriverlocal_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/runtime_ztevnfmdriver.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 + ztevnfmdriver_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "/var/log/onap/vfc/ztevnfmdriver/runtime_ztevnfmdriver.log" + formatter: + "mdcFormat" + maxBytes: 52428800 + backupCount: 10 + django_handler: + level: "DEBUG" + class: + "logging.handlers.RotatingFileHandler" + filename: "logs/django.log" + formatter: + "standard" + maxBytes: 52428800 + backupCount: 10 +formatters: + standard: + format: + "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s" + mdcFormat: + format: + "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t" + mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}" + datefmt: "%Y-%m-%d %H:%M:%S" + (): onaplogging.mdcformatter.MDCFormatter diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/configmap.yaml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/configmap.yaml new file mode 100644 index 0000000000..1d0751a01b --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-logging-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/deployment.yaml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/deployment.yaml new file mode 100644 index 0000000000..7a0f4a1132 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/deployment.yaml @@ -0,0 +1,121 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#Example init container for dependency checking +# - command: +# - /root/ready.py +# args: +# - --container-name +# - mariadb +# env: +# - name: NAMESPACE +# valueFrom: +# fieldRef: +# apiVersion: v1 +# fieldPath: metadata.namespace +# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" +# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +# name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + env: + - name: MSB_ADDR + value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}" + volumeMounts: + - name: {{ include "common.fullname" . }}-localtime + mountPath: /etc/localtime + readOnly: true + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-logconfig + mountPath: /opt/vfc/ztevnfmdriver/config/log.yml + subPath: log.yml + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # side car containers + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + + volumes: + - name: {{ include "common.fullname" . }}-localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + - name: {{ include "common.fullname" . }}-logconfig + configMap: + name : {{ include "common.fullname" . }}-logging-configmap + + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-vfc-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/service.yaml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/service.yaml new file mode 100644 index 0000000000..7ee544520d --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/templates/service.yaml @@ -0,0 +1,51 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "ztevnfmdriver", + "version": "v1", + "url": "/api/ztevnfmdriver/v1", + "protocol": "REST", + "port": "{{ .Values.service.externalPort }}", + "visualRange":"1" + } + ]' +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml new file mode 100644 index 0000000000..79c1627198 --- /dev/null +++ b/kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml @@ -0,0 +1,85 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.0.0 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/vfc/ztevnfmdriver:1.1.0-SNAPSHOT-latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: vfc-zte-vnfm-driver + externalPort: 8410 + internalPort: 8410 + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/vfc/requirements.yaml b/kubernetes/vfc/requirements.yaml new file mode 100644 index 0000000000..1e8f788318 --- /dev/null +++ b/kubernetes/vfc/requirements.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +dependencies: + - name: common + version: ~2.0.0 + repository: '@local'
\ No newline at end of file diff --git a/kubernetes/vfc/resources/config/logging/filebeat/filebeat.yml b/kubernetes/vfc/resources/config/logging/filebeat/filebeat.yml new file mode 100644 index 0000000000..5967963f1b --- /dev/null +++ b/kubernetes/vfc/resources/config/logging/filebeat/filebeat.yml @@ -0,0 +1,42 @@ +filebeat.prospectors: +#it is mandatory, in our case it's log +- input_type: log + #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory. + paths: + - /var/log/onap/*/*/*/*.log + - /var/log/onap/*/*/*.log + - /var/log/onap/*/*.log + #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive + ignore_older: 48h + # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit + clean_inactive: 96h + + +# Name of the registry file. If a relative path is used, it is considered relative to the +# data path. Else full qualified file name. +#filebeat.registry_file: ${path.data}/registry + + +output.logstash: + #List of logstash server ip addresses with port number. + #But, in our case, this will be the loadbalancer IP address. + #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately. + #hosts: ["logstash.{{.Values.nsPrefix}}:5044"] + hosts: ["{{.Release.Name}}-{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"] + #If enable will do load balancing among availabe Logstash, automatically. + loadbalance: true + + #The list of root certificates for server verifications. + #If certificate_authorities is empty or not set, the trusted + #certificate authorities of the host system are used. + #ssl.certificate_authorities: $ssl.certificate_authorities + + #The path to the certificate for SSL client authentication. If the certificate is not specified, + #client authentication is not available. + #ssl.certificate: $ssl.certificate + + #The client certificate key used for client authentication. + #ssl.key: $ssl.key + + #The passphrase used to decrypt an encrypted key stored in the configured key file + #ssl.key_passphrase: $ssl.key_passphrase diff --git a/kubernetes/vfc/templates/all-services.yaml b/kubernetes/vfc/templates/all-services.yaml deleted file mode 100644 index 1e8abe2ec3..0000000000 --- a/kubernetes/vfc/templates/all-services.yaml +++ /dev/null @@ -1,477 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcNslcm }} -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-nslcm - name: vfc-nslcm - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "nslcm", - "version": "v1", - "url": "/api/nslcm/v1", - "protocol": "REST", - "port": "{{.Values.nslcm.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-nslcm - port: {{.Values.nslcm.port}} - nodePort: {{.Values.nslcm.nodePort}} - selector: - app: vfc-nslcm - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcResmgr }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-resmgr - name: vfc-resmgr - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "resmgr", - "version": "v1", - "url": "/api/resmgr/v1", - "protocol": "REST", - "port": "{{.Values.resmgr.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-resmgr - port: {{.Values.resmgr.port}} - nodePort: {{.Values.resmgr.nodePort}} - selector: - app: vfc-resmgr - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcGvnfmdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-gvnfmdriver - name: vfc-gvnfmdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "gvnfmdriver", - "version": "v1", - "url": "/api/gvnfmdriver/v1", - "protocol": "REST", - "port": "{{.Values.gvnfmdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-gvnfmdriver - port: {{.Values.gvnfmdriver.port}} - nodePort: {{.Values.gvnfmdriver.nodePort}} - selector: - app: vfc-gvnfmdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcztevnfmdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-ztevnfmdriver - name: vfc-ztevnfmdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "ztevnfmdriver", - "version": "v1", - "url": "/api/ztevnfmdriver/v1", - "protocol": "REST", - "port": "{{.Values.ztevnfmdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-ztevnfmdriver - port: {{.Values.ztevnfmdriver.port}} - nodePort: {{.Values.ztevnfmdriver.nodePort}} - selector: - app: vfc-ztevnfmdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcNokiavnfmdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-nokiavnfmdriver - name: vfc-nokiavnfmdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "nokiavnfmdriver", - "version": "v1", - "url": "/api/nokiavnfmdriver/v1", - "protocol": "REST", - "port": "{{.Values.nokiavnfmdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-nokiavnfmdriver - port: {{.Values.nokiavnfmdriver.port}} - nodePort: {{.Values.nokiavnfmdriver.nodePort}} - selector: - app: vfc-nokiavnfmdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcNokiav2vnfmdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-nokiav2vnfmdriver - name: vfc-nokiav2vnfmdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "NokiaSVNFM", - "version": "v1", - "url": "/api/NokiaSVNFM/v1", - "protocol": "REST", - "port": "{{.Values.nokiav2vnfmdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-nokiav2vnfmdriver - port: {{.Values.nokiav2vnfmdriver.port}} - nodePort: {{.Values.nokiav2vnfmdriver.nodePort}} - selector: - app: vfc-nokiav2vnfmdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcHwvnfmdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-hwvnfmdriver - name: vfc-hwvnfmdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "huaweivnfmdriver", - "version": "v1", - "url": "/api/huaweivnfmdriver/v1", - "protocol": "REST", - "port": "{{.Values.hwvnfmdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-hwvnfmdriver - port: {{.Values.hwvnfmdriver.port}} - nodePort: {{.Values.hwvnfmdriver.nodePort}} - selector: - app: vfc-hwvnfmdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcZtesdncdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-ztesdncdriver - name: vfc-ztesdncdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "ztesdncdriver", - "version": "v1", - "url": "/api/ztesdncdriver/v1", - "protocol": "REST", - "port": "{{.Values.ztesdncdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-ztesdncdriver - port: {{.Values.ztesdncdriver.port}} - nodePort: {{.Values.ztesdncdriver.nodePort}} - selector: - app: vfc-ztesdncdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcJujudriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-jujudriver - name: vfc-jujudriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "jujuvnfmdriver", - "version": "v1", - "url": "/api/jujuvnfmdriver/v1", - "protocol": "REST", - "port": "{{.Values.jujudriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-jujudriver - port: {{.Values.jujudriver.port}} - nodePort: {{.Values.jujudriver.nodePort}} - selector: - app: vfc-jujudriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcVnflcm }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-vnflcm - name: vfc-vnflcm - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "vnflcm", - "version": "v1", - "url": "/api/vnflcm/v1", - "protocol": "REST", - "port": "{{.Values.vnflcm.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-vnflcm - port: {{.Values.vnflcm.port}} - nodePort: {{.Values.vnflcm.nodePort}} - selector: - app: vfc-vnflcm - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcVnfres }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-vnfres - name: vfc-vnfres - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "vnfres", - "version": "v1", - "url": "/api/vnfres/v1", - "protocol": "REST", - "port": "{{.Values.vnfres.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-vnfres - port: {{.Values.vnfres.port}} - nodePort: {{.Values.vnfres.nodePort}} - selector: - app: vfc-vnfres - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcVnfmgr }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-vnfmgr - name: vfc-vnfmgr - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "vnfmgr", - "version": "v1", - "url": "/api/vnfmgr/v1", - "protocol": "REST", - "port": "{{.Values.vnfmgr.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-vnfmgr - port: {{.Values.vnfmgr.port}} - nodePort: {{.Values.vnfmgr.nodePort}} - selector: - app: vfc-vnfmgr - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcEmsdriver }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-emsdriver - name: vfc-emsdriver - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "emsdriver", - "version": "v1", - "url": "/api/emsdriver/v1", - "protocol": "REST", - "port": "{{.Values.emsdriver.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-emsdriver - port: {{.Values.emsdriver.port}} - nodePort: {{.Values.emsdriver.nodePort}} - selector: - app: vfc-emsdriver - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcWorkflow }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-workflow - name: vfc-workflow - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "workflow", - "version": "v1", - "url": "/api/workflow/v1", - "protocol": "REST", - "port": "{{.Values.workflow.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-workflow - port: {{.Values.workflow.port}} - nodePort: {{.Values.workflow.nodePort}} - selector: - app: vfc-workflow - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcWorkflowEngineActiviti }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-workflowengineactiviti - name: vfc-workflowengineactiviti - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "workflow", - "version": "v1", - "url": "/activiti-rest", - "protocol": "REST", - "port": "{{.Values.workflowengineactiviti.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-workflow - port: {{.Values.workflowengineactiviti.port}} - nodePort: {{.Values.workflowengineactiviti.nodePort}} - selector: - app: vfc-workflow - type: NodePort -#{{ end }} -#{{ if not .Values.disableVfcVfcCatalog }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: vfc-catalog - name: vfc-catalog - namespace: "{{ .Values.nsPrefix }}" - annotations: - msb.onap.org/service-info: '[ - { - "serviceName": "catalog", - "version": "v1", - "url": "/api/catalog/v1", - "protocol": "REST", - "port": "{{.Values.catalog.port}}", - "visualRange":"1" - } - ]' -spec: - ports: - - name: vfc-catalog - port: {{.Values.catalog.port}} - nodePort: {{.Values.catalog.nodePort}} - selector: - app: vfc-catalog - type: NodePort -#{{ end }} diff --git a/kubernetes/vfc/templates/configmap.yaml b/kubernetes/vfc/templates/configmap.yaml new file mode 100644 index 0000000000..f72ff132d9 --- /dev/null +++ b/kubernetes/vfc/templates/configmap.yaml @@ -0,0 +1,21 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-vfc-filebeat-configmap + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logging/filebeat/*").AsConfig . | indent 2 }}
\ No newline at end of file diff --git a/kubernetes/vfc/templates/vfc-catalog-deployment.yaml b/kubernetes/vfc/templates/vfc-catalog-deployment.yaml deleted file mode 100644 index af40cbce5b..0000000000 --- a/kubernetes/vfc/templates/vfc-catalog-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcCatalog }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-catalog - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.catalog.replicas }} - selector: - matchLabels: - app: vfc-catalog - template: - metadata: - labels: - app: vfc-catalog - name: vfc-catalog - spec: - hostname: vfc-catalog - containers: - - args: - image: {{.Values.catalog.image}} - name: "vfc-catalog" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.catalog.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.catalog.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml deleted file mode 100644 index adfa3be416..0000000000 --- a/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcEmsdriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-emsdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.emsdriver.replicas }} - selector: - matchLabels: - app: vfc-emsdriver - template: - metadata: - labels: - app: vfc-emsdriver - name: vfc-emsdriver - spec: - hostname: vfc-emsdriver - containers: - - args: - image: {{.Values.emsdriver.image}} - name: "vfc-emsdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.emsdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.emsdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml deleted file mode 100644 index 5252c5e91a..0000000000 --- a/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcGvnfmdriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-gvnfmdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.gvnfmdriver.replicas }} - selector: - matchLabels: - app: vfc-gvnfmdriver - template: - metadata: - labels: - app: vfc-gvnfmdriver - name: vfc-gvnfmdriver - spec: - hostname: vfc-gvnfmdriver - containers: - - args: - image: {{.Values.gvnfmdriver.image}} - name: "vfc-gvnfmdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.gvnfmdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.gvnfmdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml deleted file mode 100644 index 9725f72c5c..0000000000 --- a/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcHwvnfmdriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-hwvnfmdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.hwvnfmdriver.replicas }} - selector: - matchLabels: - app: vfc-hwvnfmdriver - template: - metadata: - labels: - app: vfc-hwvnfmdriver - name: vfc-hwvnfmdriver - spec: - hostname: vfc-hwvnfmdriver - containers: - - args: - image: {{.Values.hwvnfmdriver.image}} - name: "vfc-hwvnfmdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.hwvnfmdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.hwvnfmdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml b/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml deleted file mode 100644 index ea1a42d8e0..0000000000 --- a/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcJujudriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-jujudriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.jujudriver.replicas }} - selector: - matchLabels: - app: vfc-jujudriver - template: - metadata: - labels: - app: vfc-jujudriver - name: vfc-jujudriver - spec: - hostname: vfc-jujudriver - containers: - - args: - image: {{.Values.jujudriver.image}} - name: "vfc-jujudriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.jujudriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.jujudriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-nokiav2vnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-nokiav2vnfmdriver-deployment.yaml deleted file mode 100644 index 7c021fddc2..0000000000 --- a/kubernetes/vfc/templates/vfc-nokiav2vnfmdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcNokiav2VnfmDriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-nokiav2vnfmdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.nokiav2vnfmdriver.replicas }} - selector: - matchLabels: - app: vfc-nokiav2vnfmdriver - template: - metadata: - labels: - app: vfc-nokiav2vnfmdriver - name: vfc-nokiav2vnfmdriver - spec: - hostname: vfc-nokiav2vnfmdriver - containers: - - args: - image: {{.Values.nokiav2vnfmdriver.image}} - name: "vfc-nokiav2vnfmdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.nokiav2vnfmdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.nokiav2vnfmdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml deleted file mode 100644 index 843090c0d0..0000000000 --- a/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcNokiaVnfmDriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-nokiavnfmdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.nokiavnfmdriver.replicas }} - selector: - matchLabels: - app: vfc-nokiavnfmdriver - template: - metadata: - labels: - app: vfc-nokiavnfmdriver - name: vfc-nokiavnfmdriver - spec: - hostname: vfc-nokiavnfmdriver - containers: - - args: - image: {{.Values.nokiavnfmdriver.image}} - name: "vfc-nokiavnfmdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.nokiavnfmdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.nokiavnfmdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml b/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml deleted file mode 100644 index 88d5cb6fc8..0000000000 --- a/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcNslcm }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-nslcm - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.nslcm.replicas }} - selector: - matchLabels: - app: vfc-nslcm - template: - metadata: - labels: - app: vfc-nslcm - name: vfc-nslcm - spec: - hostname: vfc-nslcm - containers: - - args: - image: {{.Values.nslcm.image}} - name: "vfc-nslcm" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.nslcm.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.nslcm.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml b/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml deleted file mode 100644 index 71167d19a1..0000000000 --- a/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcResmgr }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-resmgr - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.resmgr.replicas }} - selector: - matchLabels: - app: vfc-resmgr - template: - metadata: - labels: - app: vfc-resmgr - name: vfc-resmgr - spec: - hostname: vfc-resmgr - containers: - - args: - image: {{.Values.resmgr.image}} - name: "vfc-resmgr" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.resmgr.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.resmgr.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml b/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml deleted file mode 100644 index c5a3893244..0000000000 --- a/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcVnflcm }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-vnflcm - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.vnflcm.replicas }} - selector: - matchLabels: - app: vfc-vnflcm - template: - metadata: - labels: - app: vfc-vnflcm - name: vfc-vnflcm - spec: - hostname: vfc-vnflcm - containers: - - args: - image: {{.Values.vnflcm.image}} - name: "vfc-vnflcm" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.vnflcm.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.vnflcm.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml b/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml deleted file mode 100644 index 240bc74015..0000000000 --- a/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcVnfmgr }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-vnfmgr - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.vnfmgr.replicas }} - selector: - matchLabels: - app: vfc-vnfmgr - template: - metadata: - labels: - app: vfc-vnfmgr - name: vfc-vnfmgr - spec: - hostname: vfc-vnfmgr - containers: - - args: - image: {{.Values.vnfmgr.image}} - name: "vfc-vnfmgr" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.vnfmgr.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.vnfmgr.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml b/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml deleted file mode 100644 index ea394f39d8..0000000000 --- a/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcVnfres }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-vnfres - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.vnfres.replicas }} - selector: - matchLabels: - app: vfc-vnfres - template: - metadata: - labels: - app: vfc-vnfres - name: vfc-vnfres - spec: - hostname: vfc-vnfres - containers: - - args: - image: {{.Values.vnfres.image}} - name: "vfc-vnfres" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.vnfres.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.vnfres.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-workflow-deployment.yaml b/kubernetes/vfc/templates/vfc-workflow-deployment.yaml deleted file mode 100644 index d6aee58bee..0000000000 --- a/kubernetes/vfc/templates/vfc-workflow-deployment.yaml +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcWorkflow }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-workflow - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.workflow.replicas }} - selector: - matchLabels: - app: vfc-workflow - template: - metadata: - labels: - app: vfc-workflow - name: vfc-workflow - spec: - hostname: vfc-workflow - containers: - - args: - image: {{.Values.workflow.image}} - name: "vfc-workflow" - env: - - name: SERVICE_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: SERVICE_PORT - value: "{{ .Values.workflow.port }}" - - name: OPENPALETTE_MSB_IP - value: msb-iag.{{ .Values.nsPrefix }} - - name: OPENPALETTE_MSB_PORT - value: "80" - ports: - - containerPort: {{ .Values.workflow.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.workflow.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml b/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml deleted file mode 100644 index 7db01227dc..0000000000 --- a/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcWorkflowEngineActiviti }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-workflowengineactiviti - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.workflowengineactiviti.replicas }} - selector: - matchLabels: - app: vfc-workflowengineactiviti - template: - metadata: - labels: - app: vfc-workflowengineactiviti - name: vfc-workflowengineactiviti - spec: - hostname: vfc-workflowengineactiviti - containers: - - args: - image: {{.Values.workflowengineactiviti.image}} - name: "vfc-workflowengineactiviti" - env: - - name: SERVICE_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: SERVICE_PORT - value: "{{ .Values.workflow.port }}" - - name: OPENPALETTE_MSB_IP - value: msb-iag.{{ .Values.nsPrefix }} - - name: OPENPALETTE_MSB_PORT - value: "80" - ports: - - containerPort: {{ .Values.workflowengineactiviti.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.workflowengineactiviti.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml deleted file mode 100644 index 79e427f635..0000000000 --- a/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcZtesdncdriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-ztesdncdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.ztesdncdriver.replicas }} - selector: - matchLabels: - app: vfc-ztesdncdriver - template: - metadata: - labels: - app: vfc-ztesdncdriver - name: vfc-ztesdncdriver - spec: - hostname: vfc-ztesdncdriver - containers: - - args: - image: {{.Values.ztesdncdriver.image}} - name: "vfc-ztesdncdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.ztesdncdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.ztesdncdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml deleted file mode 100644 index 4874970545..0000000000 --- a/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVfcVfcztevnfmdriver }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vfc-ztevnfmdriver - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.ztevnfmdriver.replicas }} - selector: - matchLabels: - app: vfc-ztevnfmdriver - template: - metadata: - labels: - app: vfc-ztevnfmdriver - name: vfc-ztevnfmdriver - spec: - hostname: vfc-ztevnfmdriver - containers: - - args: - image: {{.Values.ztevnfmdriver.image}} - name: "vfc-ztevnfmdriver" - env: - - name: MSB_ADDR - value: {{ tpl .Values.msbaddr . }} - ports: - - containerPort: {{ .Values.ztevnfmdriver.port }} - readinessProbe: - tcpSocket: - port: {{ .Values.ztevnfmdriver.port }} - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullPolicy: "{{ .Values.pullPolicy }}" - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" -#{{ end }} diff --git a/kubernetes/vfc/values.yaml b/kubernetes/vfc/values.yaml index 5bd6b09f62..5a8fa38eb9 100644 --- a/kubernetes/vfc/values.yaml +++ b/kubernetes/vfc/values.yaml @@ -12,86 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -nsPrefix: onap -pullPolicy: IfNotPresent -msbaddr: msb-iag.{{ .Values.nsPrefix }}:80 -nslcm: - image: nexus3.onap.org:10001/onap/vfc/nslcm:v1.0.2 - port: 8403 - nodePort: 30403 - replicas: 1 -resmgr: - image: nexus3.onap.org:10001/onap/vfc/resmanagement:v1.0.0 - port: 8480 - nodePort: 30480 - replicas: 1 -gvnfmdriver: - image: nexus3.onap.org:10001/onap/vfc/gvnfmdriver:v1.0.1 - port: 8484 - nodePort: 30484 - replicas: 1 -ztevnfmdriver: - image: nexus3.onap.org:10001/onap/vfc/ztevnfmdriver:v1.0.2 - port: 8410 - nodePort: 30410 - replicas: 1 -hwvnfmdriver: - image: nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei:v1.0.2 - port: 8482 - nodePort: 30482 - replicas: 1 -ztesdncdriver: - image: nexus3.onap.org:10001/onap/vfc/ztesdncdriver:v1.0.0 - port: 8411 - nodePort: 30411 - replicas: 1 -nokiavnfmdriver: - image: nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia:v1.0.2 - port: 8486 - nodePort: 30412 - replicas: 1 -nokiav2vnfmdriver: - image: nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2:1.1.0-STAGING-latest - port: 8089 - nodePort: 30413 - replicas: 1 -jujudriver: - image: nexus3.onap.org:10001/onap/vfc/jujudriver:v1.0.0 - port: 8483 - nodePort: 30483 - replicas: 1 -vnflcm: - image: nexus3.onap.org:10001/onap/vfc/vnflcm:v1.0.1 - port: 8801 - nodePort: 30801 - replicas: 1 -vnfres: - image: nexus3.onap.org:10001/onap/vfc/vnfres:v1.0.1 - port: 8802 - nodePort: 30802 - replicas: 1 -vnfmgr: - image: nexus3.onap.org:10001/onap/vfc/vnfmgr:v1.0.1 - port: 8803 - nodePort: 30803 - replicas: 1 -emsdriver: - image: nexus3.onap.org:10001/onap/vfc/emsdriver:v1.0.1 - port: 8206 - nodePort: 30296 - replicas: 1 -workflow: - image: nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice:v1.0.0 - port: 10550 - nodePort: 30805 - replicas: 1 -workflowengineactiviti: - image: nexus3.onap.org:10001/onap/vfc/wfengine-activiti:v1.0.0 - port: 8080 - nodePort: 30807 - replicas: 1 -catalog: - image: nexus3.onap.org:10001/onap/vfc/catalog:v1.0.2 - port: 8806 - nodePort: 30806 - replicas: 1 +global: + config: + msbServiceName: msb-iag + msbPort: 80 + +# application configuration +config: + logstashServiceName: log-ls + logstashPort: 5044 + +# sub-chart configuration +vfc-workflow: + service: + externalPort: 10550 + +vfc-workflow-engine: + config: + workflowPort: 10550 diff --git a/kubernetes/vnfsdk/Chart.yaml b/kubernetes/vnfsdk/Chart.yaml index 3a1b4abbef..d11ff56434 100644 --- a/kubernetes/vnfsdk/Chart.yaml +++ b/kubernetes/vnfsdk/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: A Helm chart for Kubernetes +description: ONAP VNF SDK name: vnfsdk -version: 1.1.0 +version: 2.0.0 diff --git a/kubernetes/vnfsdk/charts/vnfsdk-postgres/Chart.yaml b/kubernetes/vnfsdk/charts/vnfsdk-postgres/Chart.yaml new file mode 100644 index 0000000000..ea52e3b606 --- /dev/null +++ b/kubernetes/vnfsdk/charts/vnfsdk-postgres/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +description: Postgres Service +name: vnfsdk-postgres +version: 2.0.0 diff --git a/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/NOTES.txt b/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/NOTES.txt new file mode 100644 index 0000000000..652e69dc3d --- /dev/null +++ b/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/job.yaml b/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/job.yaml new file mode 100644 index 0000000000..6c1a0c0e58 --- /dev/null +++ b/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/job.yaml @@ -0,0 +1,42 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "common.fullname" . }}-config + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }}-job + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + template: + metadata: + labels: + app: {{ include "common.name" . }}-job + release: {{ .Release.Name }} + spec: + restartPolicy: Never + hostname: postgres + containers: + - name: {{ include "common.name" . }}-job + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} + env: + - name: DB_HOST + value: "{{ .Release.Name }}-{{ .Values.service.name }}" + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/service.yaml b/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/service.yaml new file mode 100644 index 0000000000..6aac9e603b --- /dev/null +++ b/kubernetes/vnfsdk/charts/vnfsdk-postgres/templates/service.yaml @@ -0,0 +1,38 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + {{- end}} + name: {{ .Values.service.name }} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} diff --git a/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml b/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml new file mode 100644 index 0000000000..f449938660 --- /dev/null +++ b/kubernetes/vnfsdk/charts/vnfsdk-postgres/values.yaml @@ -0,0 +1,63 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.1 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/refrepo/postgres:latest +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: pgset + internalPort: 5432 + externalPort: 5432 + +ingress: + enabled: false diff --git a/kubernetes/vnfsdk/requirements.yaml b/kubernetes/vnfsdk/requirements.yaml new file mode 100644 index 0000000000..caf41498fb --- /dev/null +++ b/kubernetes/vnfsdk/requirements.yaml @@ -0,0 +1,24 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +dependencies: + - name: common + version: ~2.0.0 + # local reference to common chart, as it is + # a part of this chart's package and will not + # be published independently to a repo (at this point) + repository: '@local' + - name: postgres + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/vnfsdk/templates/NOTES.txt b/kubernetes/vnfsdk/templates/NOTES.txt new file mode 100644 index 0000000000..652e69dc3d --- /dev/null +++ b/kubernetes/vnfsdk/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.externalPort }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} +{{- end }} diff --git a/kubernetes/vnfsdk/templates/deployment.yaml b/kubernetes/vnfsdk/templates/deployment.yaml new file mode 100644 index 0000000000..2e5f40b83c --- /dev/null +++ b/kubernetes/vnfsdk/templates/deployment.yaml @@ -0,0 +1,61 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - "{{ index .Values "vnfsdk-postgres" "nameOverride" }}" + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy}} + name: {{ include "common.name" . }}-readiness + containers: + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.pullPolicy | default .Values.global.pullPolicy }} + name: {{ include "common.name" . }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/vnfsdk/templates/postgres-deployment.yaml b/kubernetes/vnfsdk/templates/postgres-deployment.yaml deleted file mode 100644 index 14eb741157..0000000000 --- a/kubernetes/vnfsdk/templates/postgres-deployment.yaml +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVnfsdkPostgres }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: vnfsdk-postgres - namespace: {{ .Values.nsPrefix }} -spec: - replicas: 1 - selector: - matchLabels: - app: postgres - template: - metadata: - labels: - app: postgres - name: vnfsdk-postgres - spec: - hostname: postgres - containers: - - args: - image: {{ .Values.image.postgresImage }}:{{ .Values.image.postgresVersion }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: "postgres" - imagePullSecrets: - - name: {{ .Values.nsPrefix }}-docker-registry-key -#{{ end }} diff --git a/kubernetes/vnfsdk/templates/refrepo-deployment.yaml b/kubernetes/vnfsdk/templates/refrepo-deployment.yaml deleted file mode 100644 index 95d6fedad9..0000000000 --- a/kubernetes/vnfsdk/templates/refrepo-deployment.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# 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. - -#{{ if not .Values.disableVnfsdkRefrepo }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - labels: - app: refrepo - name: vnfsdk-refrepo - namespace: "{{ .Values.nsPrefix }}" -spec: - selector: - matchLabels: - app: refrepo - template: - metadata: - labels: - app: refrepo - name: vnfsdk-refrepo - spec: - initContainers: - - command: - - /root/ready.py - args: - - --container-name - - postgres - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - image: "{{ .Values.image.readiness }}:{{ .Values.image.readinessVersion }}" - imagePullPolicy: {{ .Values.pullPolicy }} - name: vnfsdk-readiness - containers: - - image: {{ .Values.image.refrepoImage }}:{{ .Values.image.refrepoVersion }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: refrepo - readinessProbe: - tcpSocket: - port: 8702 - initialDelaySeconds: 5 - periodSeconds: 10 - imagePullSecrets: - - name: {{ .Values.nsPrefix }}-docker-registry-key -#{{ end }} diff --git a/kubernetes/vnfsdk/templates/service.yaml b/kubernetes/vnfsdk/templates/service.yaml new file mode 100644 index 0000000000..6aac9e603b --- /dev/null +++ b/kubernetes/vnfsdk/templates/service.yaml @@ -0,0 +1,38 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + {{- end}} + name: {{ .Values.service.name }} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} diff --git a/kubernetes/vnfsdk/values.yaml b/kubernetes/vnfsdk/values.yaml index 3c21d5cb28..9cb3dd6f76 100644 --- a/kubernetes/vnfsdk/values.yaml +++ b/kubernetes/vnfsdk/values.yaml @@ -12,13 +12,54 @@ # See the License for the specific language governing permissions and # limitations under the License. -nsPrefix: onap +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.1 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/refrepo:1.1-STAGING-latest pullPolicy: Always -nodePortPrefix: 302 -image: - readiness: oomk8s/readiness-check - readinessVersion: 1.1.0 - postgresImage: nexus3.onap.org:10001/onap/refrepo/postgres - postgresVersion: latest - refrepoImage: nexus3.onap.org:10001/onap/refrepo - refrepoVersion: 1.0-STAGING-latest + +#subchart name +vnfsdk-postgres: + nameOverride: postgres + +# flag to enable debugging - application support required +debugEnabled: false + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: NodePort + name: refrepo + nodePort: 97 + internalPort: 8702 + +ingress: + enabled: false |