Service Schema Loading Fails with `InaccessibleObjectException`
This issue should belong here: osdu/platform/deployment-and-operations/infra-azure-provisioning#322
TLDR:
The schama PUT ends with InaccessibleObjectException
. See attached logs on the original bug.
This is my latest log trying to PUT a new schema:
2023-09-25 10:26:10.548 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.audit {auditLog={resources=[{"x-osdu-inheriting-from-kind":[],"x-osdu-license":"Copyright 2022, The Open Group \\nLicensed 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.","$schema":"http://json-schema.org/draft-07/schema#","x-osdu-schema-source":"osdu:wks:AbstractAccessControlList:1.0.0","description":"The access control tags associated with this entity. This structure is included by the SystemProperties \"acl\", which is part of all OSDU records. Not extensible.","additionalProperties":false,"title":"Access Control List","type":"object","properties":{"viewers":{"description":"The list of viewers to which this data record is accessible/visible/discoverable formatted as an email (core.common.model.storage.validation.ValidationDoc.EMAIL_REGEX).","title":"List of Viewers","type":"array","items":{"pattern":"^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$","type":"string"}},"owners":{"description":"The list of owners of this data record formatted as an email (core.common.model.storage.validation.ValidationDoc.EMAIL_REGEX).","title":"List of Owners","type":"array","items":{"pattern":"^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$","type":"string"}}},"required":["owners","viewers"],"$id":"https://schema.osdu.opengroup.org/json/abstract/AbstractAccessControlList.1.0.0.json"}], action=READ, actionId=SC002, message=Schema retrieved success, user=ed5bc0d2-a29c-4d2c-8fae-ec445f5e397b, status=SUCCESS}} {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:10.704 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app Latest patch version is not found so trying to find the nearest matching major version {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:10.795 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app Schema info updated in schema info store {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:10.810 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app Schmema saved in schema store {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:10.810 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] Generating event of type {} correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app update {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:10.810 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app Schema event created. {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:11.520 INFO schema-5fd5f874-47k6z --- [ Thread-25] c.a.i.ClientSecretCredential correlation-id= data-partition-id=: Azure Identity => getToken() result for scopes [https://vault.azure.net/.default]: SUCCESS
2023-09-25 10:26:11.520 INFO schema-5fd5f874-47k6z --- [ Thread-25] c.a.i.DefaultAzureCredential correlation-id= data-partition-id=: Azure Identity => Attempted credential EnvironmentCredential returns a token
2023-09-25 10:26:11.544 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.KeyVaultFacade correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: Successfully retrieved opendes-eventgrid-schemachangedtopic-accesskey.
2023-09-25 10:26:11.604 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.KeyVaultFacade correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: Successfully retrieved opendes-eventgrid-schemachangedtopic.
2023-09-25 10:26:11.605 ERROR schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app Internal server error {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
2023-09-25 10:26:11.606 WARN schema-5fd5f874-47k6z --- [p-nio-80-exec-9] o.o.o.a.l.Slf4JLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app Internal server error {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
java.lang.reflect.InaccessibleObjectException: Unable to make field private static final long java.util.ArrayList.serialVersionUID accessible: module java.base does not "opens java.util" to unnamed module @69c532af
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
at com.microsoft.rest.Validator.validateClass(Validator.java:77)
at com.microsoft.rest.Validator.validate(Validator.java:64)
at com.microsoft.azure.eventgrid.implementation.EventGridClientImpl.publishEventsWithServiceResponseAsync(EventGridClientImpl.java:259)
at com.microsoft.azure.eventgrid.implementation.EventGridClientImpl.publishEvents(EventGridClientImpl.java:208)
at org.opengroup.osdu.azure.eventgrid.EventGridTopicStore.publishToEventGridTopic(EventGridTopicStore.java:87)
at org.opengroup.osdu.azure.publisherFacade.EventGridPublisher.publishToEventGrid(EventGridPublisher.java:69)
at org.opengroup.osdu.azure.publisherFacade.MessagePublisher.publishMessage(MessagePublisher.java:46)
at org.opengroup.osdu.schema.azure.impl.messagebus.MessageBusImpl.publishSchemaEventToAzure(MessageBusImpl.java:135)
at org.opengroup.osdu.schema.azure.impl.messagebus.MessageBusImpl.publishMessage(MessageBusImpl.java:68)
at org.opengroup.osdu.schema.service.serviceimpl.SchemaService.updateSchemaInternal(SchemaService.java:230)
at org.opengroup.osdu.schema.service.serviceimpl.SchemaService.updateSchema(SchemaService.java:203)
at org.opengroup.osdu.schema.service.serviceimpl.SchemaService.upsertSchemaInternal(SchemaService.java:331)
at org.opengroup.osdu.schema.service.serviceimpl.SchemaService.upsertSchema(SchemaService.java:320)
at org.opengroup.osdu.schema.api.SchemaController.upsertSchema(SchemaController.java:150)
at org.opengroup.osdu.schema.api.SchemaController$$FastClassBySpringCGLIB$$38d8ac68.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:67)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at org.opengroup.osdu.schema.api.SchemaController$$EnhancerBySpringCGLIB$$aa8168cf.upsertSchema(<generated>)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:684)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.opengroup.osdu.schema.security.ResponseHeaderFIlter.doFilter(ResponseHeaderFIlter.java:69)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.opengroup.osdu.azure.filters.TransactionLogFilter.doFilter(TransactionLogFilter.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.opengroup.osdu.schema.security.AzureIstioSecurityFilter.doFilterInternal(AzureIstioSecurityFilter.java:84)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.opengroup.osdu.azure.filters.Slf4jMDCFilter.doFilter(Slf4jMDCFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.servlet.v3_1.OpenTelemetryHandlerMappingFilter.doFilter(OpenTelemetryHandlerMappingFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter.doFilter(WebRequestTrackingFilter.java)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
2023-09-25 10:26:11.606 INFO schema-5fd5f874-47k6z --- [p-nio-80-exec-9] TxnLogger correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f data-partition-id=opendes: schema.app End Web-API PUT /schema/ Headers: {correlation-id:09de3213-25f6-4e59-97ec-e858c7d6f93f,content-type:application/json} status=500 time=1441 ms {correlation-id=09de3213-25f6-4e59-97ec-e858c7d6f93f, data-partition-id=opendes}
This is the body ot the PUT (which worked on previous verion 0.20.0 of the OSDU:
{
"schemaInfo": {
"schemaIdentity": {
"authority": "opendes",
"source": "wks",
"entityType": "master-data--site",
"schemaVersionMajor": 0,
"schemaVersionMinor": 0,
"schemaVersionPatch": 0,
"id": "osdu:wks:master-data--site:0.0.0"
},
"createdBy": "OSDU Data Definition Group",
"scope": "SHARED",
"status": "DEVELOPMENT"
},
"schema": {
"x-osdu-license": "Copyright 2021",
"$id": "",
"$schema": "http://json-schema.org/draft-07/schema#",
"x-osdu-schema-source": "osdu:wks:master-data--site:0.0.0",
"title": "Site",
"description": "Site entity.",
"type": "object",
"properties": {
"id": {
"description": "Previously called ResourceID or SRN which identifies this OSDU resource object without version.",
"title": "Entity ID",
"type": "string",
"pattern": "^[\\w\\-\\.]+:master-data\\-\\-site:[\\w\\-\\.\\:\\%]+$",
"example": "namespace:master-data--site:6c60ceb0-3521-57b7-9bd8-e1d7c9f66230"
},
"kind": {
"description": "The schema identification for the OSDU resource object following the pattern {Namespace}:{Source}:{Type}:{VersionMajor}.{VersionMinor}.{VersionPatch}. The versioning scheme follows the semantic versioning, https://semver.org/.",
"title": "Entity Kind",
"type": "string",
"pattern": "^[\\w\\-\\.]+:[\\w\\-\\.]+:[\\w\\-\\.]+:[0-9]+.[0-9]+.[0-9]+$",
"example": "osdu:wks:master-data--site:0.0.0"
},
"version": {
"description": "The version number of this OSDU resource; set by the framework.",
"title": "Version Number",
"type": "integer",
"format": "int64",
"example": 1562066009929332
},
"acl": {
"description": "The access control tags associated with this entity.",
"title": "Access Control List",
"$ref": "osdu:wks:AbstractAccessControlList:1.0.0"
},
"legal": {
"description": "The entity's legal tags and compliance status. The actual contents associated with the legal tags is managed by the Compliance Service.",
"title": "Legal Tags",
"$ref": "osdu:wks:AbstractLegalTags:1.0.0"
},
"tags": {
"title": "Tag Dictionary",
"description": "A generic dictionary of string keys mapping to string value. Only strings are permitted as keys and values.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"example": {
"NameOfKey": "String value"
}
},
"createTime": {
"description": "Timestamp of the time at which initial version of this OSDU resource object was created. Set by the System. The value is a combined date-time string in ISO-8601 given in UTC.",
"title": "Resource Object Creation DateTime",
"type": "string",
"format": "date-time",
"example": "2020-12-16T11:46:20.163Z"
},
"createUser": {
"title": "Resource Object Creation User Reference",
"description": "The user reference, which created the first version of this resource object. Set by the System.",
"type": "string",
"example": "some-user@some-company-cloud.com"
},
"modifyTime": {
"description": "Timestamp of the time at which this version of the OSDU resource object was created. Set by the System. The value is a combined date-time string in ISO-8601 given in UTC.",
"title": "Resource Object Version Creation DateTime",
"type": "string",
"format": "date-time",
"example": "2020-12-16T11:52:24.477Z"
},
"modifyUser": {
"title": "Resource Object Version Creation User Reference",
"description": "The user reference, which created this version of this resource object. Set by the System.",
"type": "string",
"example": "some-user@some-company-cloud.com"
},
"data": {
"allOf": [
{
"type": "object",
"properties": {
"Id": {
"title": "Id",
"type": "integer"
},
"SiteName": {
"title": "SiteName",
"type": "string"
},
"Longitude": {
"title": "Longitude",
"type": "number"
},
"Latitude": {
"title": "Latitude",
"type": "number"
}
}
}
]
}
},
"required": [
"kind",
"acl",
"legal"
],
"additionalProperties": false,
"x-osdu-inheriting-from-kind": []
}
}