--- /dev/null
+# Ignore generation of all the models for ProvMns
+target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/*.java
+
+# Allow generation of the below model for ProvMns
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ClassNameIdPatchDefaultResponse.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseDefault.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseDefaultOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseGet.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseGetOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponsePatch.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponsePatchOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/PatchItem.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/PatchOperation.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ResourceOneOf.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/Scope.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ScopeType.java
\ No newline at end of file
--- /dev/null
+# Ignore generation of all the models for ProvMns
+target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/*.java
+
+# Allow generation of the below model for ProvMns
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ClassNameIdPatchDefaultResponse.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseDefault.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseDefaultOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseGet.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseGetOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponsePatch.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponsePatchOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/PatchItem.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/PatchOperation.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ResourceOneOf.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/Scope.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ScopeType.java
\ No newline at end of file
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2025 OpenInfra Foundation Europe
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.provmns.model;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * This class serves as a replacement for the generated ClassNameIdGetDataNodeSelector class which contains dependencies
+ * that cause code generation issues.
+ */
+@Getter
+@Setter
+public class ClassNameIdGetDataNodeSelectorParameter {
+
+ private String dataNodeSelector;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2025 OpenInfra Foundation Europe
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.provmns.model;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+/**
+ * This interface serves as a replacement for the generated Resource class, which has dependencies on the NRM-related
+ * models that we want to avoid for our implementation of Provisioning and Management Services (ProvMnS) API.
+ */
+@JsonSerialize(as = ResourceOneOf.class)
+@JsonDeserialize(as = ResourceOneOf.class)
+public interface Resource { }
--- /dev/null
+# Ignore generation of all the models for ProvMns
+target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/*.java
+
+# Allow generation of the below model for ProvMns
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ClassNameIdPatchDefaultResponse.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseDefault.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseDefaultOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseGet.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponseGetOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponsePatch.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ErrorResponsePatchOtherProblemsInner.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/PatchItem.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/PatchOperation.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ResourceOneOf.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/Scope.java
+!target/generated-sources/openapi/src/gen/java/org/onap/cps/ncmp/dmi/provmns/model/ScopeType.java
\ No newline at end of file
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2025 OpenInfra Foundation Europe
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.provmns.model;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * This class serves as a replacement for the generated ClassNameIdGetDataNodeSelector class which contains dependencies
+ * that cause code generation issues.
+ */
+@Getter
+@Setter
+public class ClassNameIdGetDataNodeSelectorParameter {
+
+ private String dataNodeSelector;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2025 OpenInfra Foundation Europe
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.provmns.model;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+/**
+ * This interface serves as a replacement for the generated Resource class, which has dependencies on the NRM-related
+ * models that we want to avoid for our implementation of Provisioning and Management Services (ProvMnS) API.
+ */
+@JsonSerialize(as = ResourceOneOf.class)
+@JsonDeserialize(as = ResourceOneOf.class)
+public interface Resource { }
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2025 OpenInfra Foundation Europe
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.rest.stub.controller;
+
+import java.util.List;
+import org.onap.cps.ncmp.dmi.provmns.model.ClassNameIdGetDataNodeSelectorParameter;
+import org.onap.cps.ncmp.dmi.provmns.model.Resource;
+import org.onap.cps.ncmp.dmi.provmns.model.ResourceOneOf;
+import org.onap.cps.ncmp.dmi.provmns.model.Scope;
+import org.onap.cps.ncmp.dmi.provmns.rest.api.DefaultApi;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+public class ProvMnsStubController implements DefaultApi {
+
+ /**
+ * Replaces a complete single resource or creates it if it does not exist.
+ *
+ * @param className Class name of the targeted resource
+ * @param id Identifier of the targeted resource
+ * @param resource Resource representation of the resource to be created or replaced
+ * @return {@code ResponseEntity} The representation of the updated resource is returned in the response
+ * message body.
+ */
+ @Override
+ public ResponseEntity<Resource> classNameidPut(final String className, final String id, final Resource resource) {
+ return new ResponseEntity<>(resource, HttpStatus.OK);
+ }
+
+ /**
+ * Reads one or multiple resources.
+ *
+ * @param className Class name of the targeted resource
+ * @param id Identifier of the targeted resource
+ * @param scope Extends the set of targeted resources beyond the base
+ * resource identified with the authority and path component of
+ * the URI.
+ * @param filter Reduces the targeted set of resources by applying a filter to
+ * the scoped set of resource representations. Only resources
+ * representations for which the filter construct evaluates to
+ * "true" are targeted.
+ * @param attributes Attributes of the scoped resources to be returned. The
+ * value is a comma-separated list of attribute names.
+ * @param fields Attribute fields of the scoped resources to be returned. The
+ * value is a comma-separated list of JSON pointers to the
+ * attribute fields.
+ * @param dataNodeSelector dataNodeSelector object
+ * @return {@code ResponseEntity} The resources identified in the request for retrieval are returned
+ * in the response message body.
+ */
+ @Override
+ public ResponseEntity<Resource> classNameidGet(final String className, final String id, final Scope scope,
+ final String filter, final List<String> attributes,
+ final List<String> fields,
+ final ClassNameIdGetDataNodeSelectorParameter dataNodeSelector) {
+ return new ResponseEntity<>(new ResourceOneOf("exampleResourceId"), HttpStatus.OK);
+ }
+
+ /**
+ * Patches (Create, Update or Delete) one or multiple resources.
+ *
+ * @param className Class name of the targeted resource
+ * @param id Identifier of the targeted resource
+ * @param resource Resource representation of the resource to be created or replaced
+ * @return {@code ResponseEntity} The updated resource representations are returned in the response message body.
+ */
+ @Override
+ public ResponseEntity<Resource> classNameidPatch(final String className, final String id, final Resource resource) {
+ return new ResponseEntity<>(resource, HttpStatus.OK);
+ }
+
+ /**
+ * Delete one or multiple resources.
+ *
+ * @param className Class name of the targeted resource
+ * @param id Identifier of the targeted resource
+ * @return {@code ResponseEntity} The response body is empty, HTTP status returned.
+ */
+ @Override
+ public ResponseEntity<Void> classNameidDelete(final String className, final String id) {
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
rest:
api:
dmi-stub-base-path: /dmi
+ provmns-base-path: /ProvMnS
spring:
main:
</configOptions>
</configuration>
</execution>
+ <execution>
+ <id>dmi-code-gen-provmns</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <inputSpec>https://forge.3gpp.org/rep/all/5G_APIs/-/raw/REL-18/TS28532_ProvMnS.yaml</inputSpec>
+ <invokerPackage>org.onap.cps.ncmp.dmi.rest.stub.provmns.controller</invokerPackage>
+ <modelPackage>org.onap.cps.ncmp.dmi.provmns.model</modelPackage>
+ <apiPackage>org.onap.cps.ncmp.dmi.provmns.rest.api</apiPackage>
+ <generatorName>spring</generatorName>
+ <generateSupportingFiles>false</generateSupportingFiles>
+ <configOptions>
+ <sourceFolder>src/gen/java</sourceFolder>
+ <dateLibrary>java11</dateLibrary>
+ <interfaceOnly>true</interfaceOnly>
+ <useSpringBoot3>true</useSpringBoot3>
+ <useTags>true</useTags>
+ <openApiNullable>false</openApiNullable>
+ <skipDefaultInterface>true</skipDefaultInterface>
+ </configOptions>
+ <importMappings>
+ <importMapping>Resource=org.onap.cps.ncmp.dmi.provmns.model.Resource</importMapping>
+ <importMapping>ClassNameIdGetDataNodeSelectorParameter=org.onap.cps.ncmp.dmi.provmns.model.ClassNameIdGetDataNodeSelectorParameter</importMapping>
+ </importMappings>
+ <ignoreFileOverride>${project.basedir}/.openapi-generator-ignore-provmns</ignoreFileOverride>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>