From 803cc73ae5ddb4de1b9ec92b8b9099a8afb2aac6 Mon Sep 17 00:00:00 2001
From: NThakur4 <nthakur4@slb.com>
Date: Fri, 15 Apr 2022 12:05:54 -0500
Subject: [PATCH] comments

---
 NOTICE~                                       | 498 ++++++++++++++++++
 docs/tutorial/IndexerService.md               |   8 +-
 .../opengroup/osdu/indexer/model/Kind.java    |  27 +
 .../service/IndexSchemaServiceImpl.java       |   6 +-
 .../service/IndexerMappingServiceImpl.java    |  17 +-
 5 files changed, 539 insertions(+), 17 deletions(-)
 create mode 100644 NOTICE~
 create mode 100644 indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Kind.java

diff --git a/NOTICE~ b/NOTICE~
new file mode 100644
index 000000000..f1bf5bc49
--- /dev/null
+++ b/NOTICE~
@@ -0,0 +1,498 @@
+# 3rd-Party Software License Notice
+Generated by fossa-cli (https://github.com/fossas/fossa-cli).
+Formatted by fossa-with-cache (https://community.opengroup.org/divido/fossa-with-cache).
+This software includes the following software and licenses:
+
+========================================================================
+Android-Sdk
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Android SDK (from https://www.android.com/)
+
+========================================================================
+Apache-1.1
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Apache Commons CLI (from https://commons.apache.org/proper/commons-cli/, https://repo1.maven.org/maven2/commons-cli/commons-cli)
+- Default Plexus Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
+- oro (from https://repo1.maven.org/maven2/oro/oro)
+
+========================================================================
+Apache-2.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- ASM based accessors helper used by json-smart (from https://urielch.github.io/)
+- AWS SDK For Java (from https://aws.amazon.com/sdkforjava)
+- AWS SDK for Java - BOM (from https://aws.amazon.com/sdkforjava)
+- AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava)
+- Apache Ant + JUnit (from http://ant.apache.org/, https://ant.apache.org/)
+- Apache Ant Core
+- Apache Ant Launcher (from http://ant.apache.org/)
+- Apache Commons BeanUtils (from http://commons.apache.org/proper/commons-beanutils/, https://repo1.maven.org/maven2/commons-beanutils/commons-beanutils)
+- Apache Commons CLI (from https://commons.apache.org/proper/commons-cli/, https://repo1.maven.org/maven2/commons-cli/commons-cli)
+- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/, https://commons.apache.org/proper/commons-codec/)
+- Apache Commons Collections (from http://commons.apache.org/proper/commons-collections/)
+- Apache Commons IO (from http://commons.apache.org/io/, https://commons.apache.org/proper/commons-io/, https://repo1.maven.org/maven2/commons-io/commons-io)
+- Apache Commons Lang (from http://commons.apache.org/proper/commons-lang/)
+- Apache Commons Logging (from http://commons.apache.org/logging/, http://commons.apache.org/proper/commons-logging/)
+- Apache Commons Validator (from http://commons.apache.org/proper/commons-validator/, http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/, https://repo1.maven.org/maven2/commons-validator/commons-validator)
+- Apache Geronimo JMS Spec 2.0 (from http://geronimo.apache.org/maven/${siteId}/${version})
+- Apache HttpAsyncClient (from http://hc.apache.org/httpcomponents-asyncclient)
+- Apache HttpClient (from http://hc.apache.org/httpcomponents-client)
+- Apache HttpCore (from http://hc.apache.org/httpcomponents-core-ga, http://hc.apache.org/httpcomponents-core-ga/)
+- Apache Maven Wagon :: API (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api)
+- Apache Maven Wagon :: Providers :: File Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file)
+- Apache Velocity (from http://velocity.apache.org/engine/releases/velocity-1.6.1/, http://velocity.apache.org/engine/releases/velocity-1.6.2/)
+- AssertJ fluent assertions (from https://repo1.maven.org/maven2/org/assertj/assertj-core)
+- AutoValue Annotations (from https://github.com/google/auto/tree/master/value, https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations)
+- BSON (from http://bsonspec.org, https://bsonspec.org)
+- Bean Validation API (from http://beanvalidation.org)
+- Brave (from https://repo1.maven.org/maven2/io/zipkin/brave/brave)
+- Brave Instrumentation: Http Adapters (from https://repo1.maven.org/maven2/io/zipkin/brave/brave-instrumentation-http)
+- Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy)
+- Byte Buddy Java agent (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent)
+- ClassMate (from http://github.com/cowtowncoder/java-classmate)
+- Collections (from https://repo1.maven.org/maven2/commons-collections/commons-collections)
+- Default Plexus Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
+- Digester (from https://repo1.maven.org/maven2/commons-digester/commons-digester)
+- FindBugs-jsr305 (from http://findbugs.sourceforge.net/)
+- Gson (from http://code.google.com/p/google-gson/, https://repo1.maven.org/maven2/com/google/code/gson/gson)
+- Guava InternalFutureFailureAccess and InternalFutures (from https://repo1.maven.org/maven2/com/google/guava/failureaccess)
+- Guava: Google Core Libraries for Java (from http://code.google.com/p/guava-libraries, https://github.com/google/guava, https://repo1.maven.org/maven2/com/google/guava/guava)
+- IBM COS SDK For Java (from https://github.com/ibm/ibm-cos-sdk-java)
+- J2ObjC Annotations (from https://github.com/google/j2objc/)
+- JCIP Annotations under Apache License (from http://stephenc.github.com/jcip-annotations)
+- JDOM
+- JSON Small and Fast Parser (from https://repo1.maven.org/maven2/net/minidev/json-smart, https://urielch.github.io/)
+- JSON library from Android SDK (from http://developer.android.com/sdk)
+- JSON.simple (from http://code.google.com/p/json-simple/)
+- JSONassert (from http://github.com/skyscreamer/yoga, https://github.com/skyscreamer/JSONassert)
+- JSR107 API and SPI (from https://github.com/jsr107/jsr107spec)
+- Jackson (from http://jackson.codehaus.org)
+- Jackson dataformat: CBOR (from http://github.com/FasterXML/jackson-dataformats-binary)
+- Jackson dataformat: Smile (from http://github.com/FasterXML/jackson-dataformat-smile, http://github.com/FasterXML/jackson-dataformats-binary)
+- Jackson datatype: JSR310 (from http://wiki.fasterxml.com/JacksonModuleJSR310, https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310)
+- Jackson datatype: jdk8 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8)
+- Jackson extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson)
+- Jackson module: JAXB Annotations (from http://github.com/FasterXML/jackson-module-jaxb-annotations, http://wiki.fasterxml.com/JacksonJAXBAnnotations, https://github.com/FasterXML/jackson-modules-base)
+- Jackson-annotations (from http://github.com/FasterXML/jackson, http://wiki.fasterxml.com/JacksonHome)
+- Jackson-core (from http://wiki.fasterxml.com/JacksonHome, https://github.com/FasterXML/jackson-core)
+- Jackson-dataformat-YAML (from http://wiki.fasterxml.com/JacksonExtensionYAML, https://github.com/FasterXML/jackson, https://github.com/FasterXML/jackson-dataformats-text)
+- Jackson-module-parameter-names (from https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names)
+- Jakarta Bean Validation API (from https://beanvalidation.org)
+- Java Native Access (from https://github.com/java-native-access/jna, https://github.com/twall/jna, https://repo1.maven.org/maven2/net/java/dev/jna/jna)
+- Java Native Access Platform (from https://github.com/java-native-access/jna)
+- Java UUID Generator (from http://wiki.fasterxml.com/JugHome)
+- Javassist (from http://www.javassist.org/)
+- JetBrains Java Annotations (from https://github.com/JetBrains/java-annotations)
+- Jetty :: Utilities (from http://jetty.mortbay.org, http://www.eclipse.org/jetty, https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util, https://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util)
+- Jetty Server (from http://jetty.mortbay.org, https://repo1.maven.org/maven2/org/mortbay/jetty/jetty)
+- Joda-Time (from http://joda-time.sourceforge.net, http://www.joda.org/joda-time/, https://www.joda.org/joda-time/)
+- Kotlin Stdlib (from https://kotlinlang.org/, https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib)
+- Kotlin Stdlib Common (from https://kotlinlang.org/)
+- Lang (from https://repo1.maven.org/maven2/commons-lang/commons-lang)
+- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
+- Metrics Core (from https://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-core)
+- Microsoft Azure SDK for SQL API of Azure Cosmos DB Service (from https://github.com/Azure/azure-sdk-for-java)
+- Mockito (from http://mockito.org, http://www.mockito.org, https://github.com/mockito/mockito)
+- MongoDB Java Driver (from http://mongodb.org/, http://www.mongodb.org)
+- Netty Reactive Streams Implementation (from https://repo1.maven.org/maven2/com/typesafe/netty/netty-reactive-streams)
+- Netty/Buffer (from https://repo1.maven.org/maven2/io/netty/netty-buffer)
+- Netty/Codec (from https://repo1.maven.org/maven2/io/netty/netty-codec)
+- Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http)
+- Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common)
+- Netty/Handler (from https://repo1.maven.org/maven2/io/netty/netty-handler)
+- Netty/Resolver (from https://repo1.maven.org/maven2/io/netty/netty-resolver)
+- Netty/Transport (from https://repo1.maven.org/maven2/io/netty/netty-transport)
+- Netty/Transport/Native/Unix/Common (from https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common)
+- Nimbus Content Type (from https://bitbucket.org/connect2id/nimbus-content-type)
+- Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags)
+- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor, https://github.com/reactor/reactor-core)
+- OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
+- Objenesis (from http://objenesis.org)
+- OkHttp (from https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp, https://square.github.io/okhttp/)
+- Okio (from https://github.com/square/okio/, https://repo1.maven.org/maven2/com/squareup/okio/okio)
+- OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
+- Plexus Velocity Component (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-velocity)
+- PostgreSQL JDBC Driver
+- PowerMock (from http://www.powermock.org, https://repo1.maven.org/maven2/org/powermock/powermock-api-mockito)
+- Prometheus Java Simpleclient (from https://repo1.maven.org/maven2/io/prometheus/simpleclient)
+- Protocol Buffer extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-protobuf)
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+- RxJava (from https://github.com/ReactiveX/RxJava)
+- Servlet Specification 2.5 API (from http://jetty.mortbay.org, https://repo1.maven.org/maven2/org/mortbay/jetty/servlet-api-2.5)
+- SnakeYAML (from http://code.google.com/p/snakeyaml/, http://www.snakeyaml.org)
+- Spring Boot AutoConfigure (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-autoconfigure, https://spring.io/projects/spring-boot)
+- Spring Plugin Core (from https://repo1.maven.org/maven2/org/springframework/plugin/spring-plugin-core)
+- Woodstox (from https://github.com/FasterXML/woodstox)
+- Xerces2-j (from https://repo1.maven.org/maven2/xerces/xercesImpl, https://xerces.apache.org/xerces2-j/)
+- Zipkin Reporter Brave (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter-brave)
+- Zipkin Reporter: Core (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter)
+- Zipkin v2 (from https://repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin)
+- aalto-xml (from https://github.com/FasterXML/aalto-xml, https://repo1.maven.org/maven2/com/fasterxml/aalto-xml)
+- error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations)
+- grpc-google-cloud-pubsub-v1 (from https://github.com/googleapis/googleapis, https://repo1.maven.org/maven2/com/google/api/grpc/grpc-google-cloud-pubsub-v1)
+- io.grpc:grpc-api (from https://github.com/grpc/grpc-java)
+- io.grpc:grpc-context (from https://github.com/grpc/grpc-java)
+- ion-java (from https://github.com/amzn/ion-java/, https://github.com/amznlabs/ion-java/)
+- jackson-databind (from http://github.com/FasterXML/jackson, http://wiki.fasterxml.com/JacksonHome)
+- jakarta.inject (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/jakarta.inject)
+- javax.inject (from http://code.google.com/p/atinject/, https://repo1.maven.org/maven2/org/glassfish/hk2/external/javax.inject)
+- javax.ws.rs-api (from https://github.com/eclipse-ee4j/jaxrs-api)
+- json-path (from http://code.google.com/p/json-path/, https://github.com/jayway/JsonPath)
+- org.apiguardian:apiguardian-api (from https://github.com/apiguardian-team/apiguardian)
+- org.conscrypt:conscrypt-openjdk-uber (from https://conscrypt.org/)
+- org.opentest4j:opentest4j (from https://github.com/ota4j-team/opentest4j)
+- org.xmlunit:xmlunit-core (from http://www.xmlunit.org/, https://www.xmlunit.org/)
+- powermock-api-mockito2 (from https://repo1.maven.org/maven2/org/powermock/powermock-api-mockito2)
+- powermock-api-support (from https://repo1.maven.org/maven2/org/powermock/powermock-api-support)
+- powermock-module-junit4 (from http://www.powermock.org)
+- powermock-module-junit4-common (from https://repo1.maven.org/maven2/org/powermock/powermock-module-junit4-common)
+- powermock-reflect (from https://repo1.maven.org/maven2/org/powermock/powermock-reflect)
+- tomcat-embed-core (from http://tomcat.apache.org/)
+- xml-apis
+
+========================================================================
+BSD-2-Clause
+========================================================================
+The following software have components provided under the terms of this license:
+
+- ASM Analysis (from http://asm.ow2.io/)
+- ASM Commons (from http://asm.ow2.io/, https://repo1.maven.org/maven2/org/ow2/asm/asm-commons)
+- ASM Tree (from http://asm.ow2.io/, https://repo1.maven.org/maven2/org/ow2/asm/asm-tree)
+- ASM Util (from http://asm.ow2.io/)
+- Apache Commons CLI (from https://commons.apache.org/proper/commons-cli/, https://repo1.maven.org/maven2/commons-cli/commons-cli)
+- Hamcrest (from http://hamcrest.org/JavaHamcrest/)
+- Hamcrest Core (from http://hamcrest.org/, https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core)
+- PostgreSQL JDBC Driver
+- Reflections (from http://code.google.com/p/reflections/, http://github.com/ronmamo/reflections)
+- Stax2 API (from http://github.com/FasterXML/stax2-api)
+- ThreeTen backport (from https://github.com/ThreeTen/threetenbp, https://www.threeten.org/threetenbp)
+
+========================================================================
+BSD-3-Clause
+========================================================================
+The following software have components provided under the terms of this license:
+
+- ASM Analysis (from http://asm.ow2.io/)
+- ASM Commons (from http://asm.ow2.io/, https://repo1.maven.org/maven2/org/ow2/asm/asm-commons)
+- ASM Core (from http://asm.ow2.io/, http://asm.ow2.org/)
+- ASM Tree (from http://asm.ow2.io/, https://repo1.maven.org/maven2/org/ow2/asm/asm-tree)
+- ASM Util (from http://asm.ow2.io/)
+- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/, https://commons.apache.org/proper/commons-codec/)
+- Hamcrest (from http://hamcrest.org/JavaHamcrest/)
+- Hamcrest Core (from http://hamcrest.org/, https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core)
+- Jakarta Activation API (from https://github.com/eclipse-ee4j/jaf, https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
+- Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api, https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec)
+- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
+- Mockito (from http://mockito.org, http://www.mockito.org, https://github.com/mockito/mockito)
+- Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http)
+- PostgreSQL JDBC Driver
+- Protocol Buffer Java API (from http://code.google.com/p/protobuf, https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java)
+- Reflections (from http://code.google.com/p/reflections/, http://github.com/ronmamo/reflections)
+- SnakeYAML (from http://code.google.com/p/snakeyaml/, http://www.snakeyaml.org)
+- ThreeTen backport (from https://github.com/ThreeTen/threetenbp, https://www.threeten.org/threetenbp)
+- classworlds (from http://classworlds.codehaus.org/, https://repo1.maven.org/maven2/classworlds/classworlds)
+- jaxen (from http://jaxen.codehaus.org/, https://repo1.maven.org/maven2/jaxen/jaxen)
+
+========================================================================
+CC-BY-2.5
+========================================================================
+The following software have components provided under the terms of this license:
+
+- FindBugs-jsr305 (from http://findbugs.sourceforge.net/)
+- MongoDB Java Driver (from http://mongodb.org/, http://www.mongodb.org)
+
+========================================================================
+CC0-1.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- reactive-streams (from http://www.reactive-streams.org/)
+
+========================================================================
+CDDL-1.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Jakarta Activation API (from https://github.com/eclipse-ee4j/jaf, https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
+- Servlet Specification 2.5 API (from http://jetty.mortbay.org, https://repo1.maven.org/maven2/org/mortbay/jetty/servlet-api-2.5)
+
+========================================================================
+CDDL-1.1
+========================================================================
+The following software have components provided under the terms of this license:
+
+- HK2 Spring Bridge (from https://repo1.maven.org/maven2/org/glassfish/hk2/spring-bridge)
+- HK2 config types (from https://repo1.maven.org/maven2/org/glassfish/hk2/config-types)
+- HK2 configuration module (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-config)
+- Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
+- JavaBeans Activation Framework
+- JavaBeans(TM) Activation Framework (from http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp)
+- JavaMail API (from https://repo1.maven.org/maven2/com/sun/mail/javax.mail)
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
+- Servlet Specification 2.5 API (from http://jetty.mortbay.org, https://repo1.maven.org/maven2/org/mortbay/jetty/servlet-api-2.5)
+- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250)
+- tomcat-embed-core (from http://tomcat.apache.org/)
+
+========================================================================
+CPL-1.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- JUnit (from http://junit.org)
+
+========================================================================
+EPL-1.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- HK2 Implementation Utilities (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-utils)
+- JUnit Jupiter (Aggregator) (from https://junit.org/junit5/)
+- JUnit Jupiter API (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Jupiter Engine (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Jupiter Params (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Platform Commons (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Platform Engine API (from http://junit.org/junit5/, https://junit.org/junit5/)
+- Jakarta Annotations API (from https://projects.eclipse.org/projects/ee4j.ca)
+- Logback Classic Module (from http://logback.qos.ch, https://repo1.maven.org/maven2/ch/qos/logback/logback-classic)
+- Logback Contrib :: JSON :: Classic (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-classic)
+- Logback Contrib :: JSON :: Core (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-core)
+- Logback Contrib :: Jackson (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-jackson)
+- Logback Core Module (from http://logback.qos.ch, https://repo1.maven.org/maven2/ch/qos/logback/logback-core)
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
+- ServiceLocator Default Implementation (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator)
+- SnakeYAML (from http://code.google.com/p/snakeyaml/, http://www.snakeyaml.org)
+- aopalliance-repackaged (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged)
+- jakarta.inject (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/jakarta.inject)
+- javax.ws.rs-api (from https://github.com/eclipse-ee4j/jaxrs-api)
+
+========================================================================
+EPL-2.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- HK2 Implementation Utilities (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-utils)
+- JUnit Jupiter (Aggregator) (from https://junit.org/junit5/)
+- JUnit Jupiter API (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Jupiter Engine (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Jupiter Params (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Platform Commons (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Platform Engine API (from http://junit.org/junit5/, https://junit.org/junit5/)
+- Jakarta Annotations API (from https://projects.eclipse.org/projects/ee4j.ca)
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
+- ServiceLocator Default Implementation (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator)
+- aopalliance-repackaged (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged)
+- jakarta.inject (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/jakarta.inject)
+- javax.ws.rs-api (from https://github.com/eclipse-ee4j/jaxrs-api)
+
+========================================================================
+GPL-2.0-only
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
+- JavaBeans Activation Framework
+- Lang (from https://repo1.maven.org/maven2/commons-lang/commons-lang)
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250)
+- tomcat-embed-core (from http://tomcat.apache.org/)
+
+========================================================================
+GPL-2.0-or-later
+========================================================================
+The following software have components provided under the terms of this license:
+
+- SnakeYAML (from http://code.google.com/p/snakeyaml/, http://www.snakeyaml.org)
+
+========================================================================
+GPL-2.0-with-classpath-exception
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Checker Qual (from https://checkerframework.org)
+- HK2 Implementation Utilities (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-utils)
+- Jakarta Annotations API (from https://projects.eclipse.org/projects/ee4j.ca)
+- Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
+- JavaBeans Activation Framework
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+- ServiceLocator Default Implementation (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator)
+- aopalliance-repackaged (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged)
+- jakarta.inject (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/jakarta.inject)
+- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250)
+- javax.ws.rs-api (from https://github.com/eclipse-ee4j/jaxrs-api)
+- tomcat-embed-core (from http://tomcat.apache.org/)
+
+========================================================================
+GPL-3.0-only
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Jakarta Annotations API (from https://projects.eclipse.org/projects/ee4j.ca)
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
+- Project Lombok (from http://projectlombok.org, https://projectlombok.org)
+- javax.ws.rs-api (from https://github.com/eclipse-ee4j/jaxrs-api)
+
+========================================================================
+JSON
+========================================================================
+The following software have components provided under the terms of this license:
+
+- JSON in Java (from https://github.com/douglascrockford/JSON-java)
+
+========================================================================
+LGPL-2.1-only
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Java Native Access (from https://github.com/java-native-access/jna, https://github.com/twall/jna, https://repo1.maven.org/maven2/net/java/dev/jna/jna)
+- Java Native Access Platform (from https://github.com/java-native-access/jna)
+- Javassist (from http://www.javassist.org/)
+- Lang (from https://repo1.maven.org/maven2/commons-lang/commons-lang)
+- Logback Classic Module (from http://logback.qos.ch, https://repo1.maven.org/maven2/ch/qos/logback/logback-classic)
+- Logback Contrib :: JSON :: Classic (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-classic)
+- Logback Contrib :: JSON :: Core (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-core)
+- Logback Contrib :: Jackson (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-jackson)
+- Logback Core Module (from http://logback.qos.ch, https://repo1.maven.org/maven2/ch/qos/logback/logback-core)
+
+========================================================================
+LGPL-2.1-or-later
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Javassist (from http://www.javassist.org/)
+- SnakeYAML (from http://code.google.com/p/snakeyaml/, http://www.snakeyaml.org)
+
+========================================================================
+LGPL-3.0-only
+========================================================================
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+
+========================================================================
+MIT
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Animal Sniffer Annotations (from https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations)
+- Bouncy Castle Provider (from http://www.bouncycastle.org/java.html, https://www.bouncycastle.org/java.html)
+- Checker Qual (from https://checkerframework.org)
+- Default Plexus Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
+- JOpt Simple (from http://jopt-simple.github.io/jopt-simple, http://pholser.github.io/jopt-simple)
+- JUL to SLF4J bridge (from http://www.slf4j.org)
+- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
+- Microsoft Azure SDK for SQL API of Azure Cosmos DB Service (from https://github.com/Azure/azure-sdk-for-java)
+- Mockito (from http://mockito.org, http://www.mockito.org, https://github.com/mockito/mockito)
+- Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http)
+- Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common)
+- Plexus Default Interactivity Handler (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api)
+- Project Lombok (from http://projectlombok.org, https://projectlombok.org)
+- SLF4J API Module (from http://www.slf4j.org)
+
+========================================================================
+MPL-1.1
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Javassist (from http://www.javassist.org/)
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+
+========================================================================
+MPL-2.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Javassist (from http://www.javassist.org/)
+- OkHttp (from https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp, https://square.github.io/okhttp/)
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+
+========================================================================
+PHP-3.01
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Jakarta Activation API (from https://github.com/eclipse-ee4j/jaf, https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
+- Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api, https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec)
+
+========================================================================
+SAX-PD
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Apache Ant Core
+
+========================================================================
+SPL-1.0
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Servlet Specification 2.5 API (from http://jetty.mortbay.org, https://repo1.maven.org/maven2/org/mortbay/jetty/servlet-api-2.5)
+
+========================================================================
+SunPro
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
+
+========================================================================
+W3C
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Apache Ant Core
+- JTidy (from http://jtidy.sourceforge.net)
+- Xerces2-j (from https://repo1.maven.org/maven2/xerces/xercesImpl, https://xerces.apache.org/xerces2-j/)
+- jaxen (from http://jaxen.codehaus.org/, https://repo1.maven.org/maven2/jaxen/jaxen)
+- xml-apis
+
+========================================================================
+WTFPL
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Reflections (from http://code.google.com/p/reflections/, http://github.com/ronmamo/reflections)
+
+========================================================================
+public-domain
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs (from http://www.bouncycastle.org/java.html, https://www.bouncycastle.org/java.html)
+- Bouncy Castle Provider (from http://www.bouncycastle.org/java.html, https://www.bouncycastle.org/java.html)
+- Guava: Google Core Libraries for Java (from http://code.google.com/p/guava-libraries, https://github.com/google/guava, https://repo1.maven.org/maven2/com/google/guava/guava)
+- HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/)
+- JTidy (from http://jtidy.sourceforge.net)
+- LatencyUtils (from http://latencyutils.github.io/LatencyUtils/)
+- PostgreSQL JDBC Driver
+- Project Lombok (from http://projectlombok.org, https://projectlombok.org)
+- Prometheus Java Simpleclient (from https://repo1.maven.org/maven2/io/prometheus/simpleclient)
+- RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
+- reactive-streams (from http://www.reactive-streams.org/)
+- xml-apis
+
+========================================================================
+unknown
+========================================================================
+The following software have components provided under the terms of this license:
+
+- Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs (from http://www.bouncycastle.org/java.html, https://www.bouncycastle.org/java.html)
+- Bouncy Castle Provider (from http://www.bouncycastle.org/java.html, https://www.bouncycastle.org/java.html)
+- Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy)
+- Checker Qual (from https://checkerframework.org)
+- JSON in Java (from https://github.com/douglascrockford/JSON-java)
+- JTidy (from http://jtidy.sourceforge.net)
+- JUnit Jupiter (Aggregator) (from https://junit.org/junit5/)
+- JUnit Jupiter API (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Jupiter Engine (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Jupiter Params (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Platform Commons (from http://junit.org/junit5/, https://junit.org/junit5/)
+- JUnit Platform Engine API (from http://junit.org/junit5/, https://junit.org/junit5/)
+- Jakarta Activation API (from https://github.com/eclipse-ee4j/jaf, https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
+- Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api, https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec)
+- jaxen (from http://jaxen.codehaus.org/, https://repo1.maven.org/maven2/jaxen/jaxen)
+- xml-apis
\ No newline at end of file
diff --git a/docs/tutorial/IndexerService.md b/docs/tutorial/IndexerService.md
index f18ad0cbe..c65489ba5 100644
--- a/docs/tutorial/IndexerService.md
+++ b/docs/tutorial/IndexerService.md
@@ -61,7 +61,7 @@ Provides build and git related information.
 
 #### Request
 
-```http request
+```http
 GET /api/indexer/v2/info HTTP/1.1
 ```
 
@@ -104,7 +104,7 @@ multiple factors contribute to latency, such as number of records in the kind, c
 
 #### Request
 
-```http request
+```http
 POST /api/indexer/v2/reindex HTTP/1.1
 {
   "kind": "opendes:welldb:wellbore:1.0.0"
@@ -149,7 +149,7 @@ will use the same schema and overwrite records with the same ids. Default value
 
 Configures Search backend for a data partition. 
 
-```http request 
+```http 
 PUT /api/indexer/v2/partitions/provision HTTP/1.1
 ```
 
@@ -181,7 +181,7 @@ Schema change event listener endpoint.
 
 #### Request
 
-```http request
+```http
 POST /api/indexer/v2/_dps/task-handlers/schema-worker HTTP/1.1
 {
     "messageId": "676894654",
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Kind.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Kind.java
new file mode 100644
index 000000000..483dd6b35
--- /dev/null
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Kind.java
@@ -0,0 +1,27 @@
+package org.opengroup.osdu.indexer.model;
+
+import lombok.Getter;
+
+@Getter
+public class Kind {
+
+    private String kind;
+    private String authority;
+    private String source;
+    private String type;
+    private String version;
+
+    public Kind(String kind) {
+        this.kind = kind;
+        String[] parts = this.kind.split(":");
+
+        if (parts.length != 4) {
+            throw new IllegalArgumentException("Invalid Kind, must be in format: authority:source:type:version");
+        }
+
+        this.authority = parts[0];
+        this.source = parts[1];
+        this.type = parts[2];
+        this.version = parts[3];
+    }
+}
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java
index 8ef4eabc7..0f5bcd7b0 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java
@@ -30,6 +30,7 @@ import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute;
 import org.opengroup.osdu.core.common.model.storage.Schema;
 import org.opengroup.osdu.core.common.model.storage.SchemaItem;
 import org.opengroup.osdu.core.common.search.ElasticIndexNameResolver;
+import org.opengroup.osdu.indexer.model.Kind;
 import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache;
 import org.opengroup.osdu.indexer.schema.converter.exeption.SchemaProcessingException;
 import org.opengroup.osdu.indexer.util.ElasticClientHandler;
@@ -231,8 +232,7 @@ public class IndexSchemaServiceImpl implements IndexSchemaService {
                 }
             }
 
-            String[] parts = schemaObj.getKind().split(":");
-            String type = parts[2];
+            Kind kind = new Kind(schemaObj.getKind());
 
             // mandatory attributes
             meta.put(RecordMetaAttribute.ID.getValue(), TypeMapper.getIndexerType(RecordMetaAttribute.ID));
@@ -253,7 +253,7 @@ public class IndexSchemaServiceImpl implements IndexSchemaService {
             meta.put(RecordMetaAttribute.MODIFY_USER.getValue(), TypeMapper.getIndexerType(RecordMetaAttribute.MODIFY_USER));
             meta.put(RecordMetaAttribute.MODIFY_TIME.getValue(), TypeMapper.getIndexerType(RecordMetaAttribute.MODIFY_TIME));
 
-            return IndexSchema.builder().dataSchema(data).metaSchema(meta).kind(schemaObj.getKind()).type(type).build();
+            return IndexSchema.builder().dataSchema(data).metaSchema(meta).kind(schemaObj.getKind()).type(kind.getType()).build();
 
         } catch (Exception e) {
             throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Schema normalization error", "An error has occurred while normalizing the schema.", e);
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java
index 6b0b6899c..13738aefa 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java
@@ -39,6 +39,7 @@ import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute;
 import org.opengroup.osdu.core.common.search.ElasticIndexNameResolver;
 import org.opengroup.osdu.core.common.search.Preconditions;
 import org.opengroup.osdu.indexer.cache.PartitionSafeIndexCache;
+import org.opengroup.osdu.indexer.model.Kind;
 import org.opengroup.osdu.indexer.util.ElasticClientHandler;
 import org.opengroup.osdu.indexer.util.TypeMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -140,15 +141,13 @@ public class IndexerMappingServiceImpl extends MappingServiceImpl implements IMa
 
     private Map<String, Object> getMetaMapping(IndexSchema schema) {
         Map<String, Object> metaMapping = new HashMap<>();
-        String[] parts = schema.getKind().split(":");
-        String authority = parts[0];
-        String source = parts[1];
+        Kind kind = new Kind(schema.getKind());
 
         for (Map.Entry<String, Object> entry : schema.getMetaSchema().entrySet()) {
             if (entry.getKey() == RecordMetaAttribute.AUTHORITY.getValue()) {
-                metaMapping.put(entry.getKey(), TypeMapper.getMetaAttributeIndexerMapping(entry.getKey(), authority));
+                metaMapping.put(entry.getKey(), TypeMapper.getMetaAttributeIndexerMapping(entry.getKey(), kind.getAuthority()));
             } else if (entry.getKey() == RecordMetaAttribute.SOURCE.getValue()) {
-                metaMapping.put(entry.getKey(), TypeMapper.getMetaAttributeIndexerMapping(entry.getKey(), source));
+                metaMapping.put(entry.getKey(), TypeMapper.getMetaAttributeIndexerMapping(entry.getKey(), kind.getSource()));
             } else {
                 metaMapping.put(entry.getKey(), TypeMapper.getMetaAttributeIndexerMapping(entry.getKey(), null));
             }
@@ -210,14 +209,12 @@ public class IndexerMappingServiceImpl extends MappingServiceImpl implements IMa
         }
 
         Map<String, Object> properties = new HashMap<>();
-        String[] parts = schema.getKind().split(":");
-        String authority = parts[0];
-        String source = parts[1];
+        Kind kind = new Kind(schema.getKind());
         for (String attribute : missing) {
             if (attribute == RecordMetaAttribute.AUTHORITY.getValue()) {
-                properties.put(attribute, TypeMapper.getMetaAttributeIndexerMapping(attribute, authority));
+                properties.put(attribute, TypeMapper.getMetaAttributeIndexerMapping(attribute, kind.getAuthority()));
             } else if (attribute == RecordMetaAttribute.SOURCE.getValue()) {
-                properties.put(attribute, TypeMapper.getMetaAttributeIndexerMapping(attribute, source));
+                properties.put(attribute, TypeMapper.getMetaAttributeIndexerMapping(attribute, kind.getSource()));
             } else {
                 properties.put(attribute, TypeMapper.getMetaAttributeIndexerMapping(attribute, null));
             }
-- 
GitLab